class Test1{
//class이름: 반드시 대문자로 시작해야함. 두번째 단어의 첫글자도 대문자 TestOne
//메소드(method) 명령어라고 생각해두세요. 이 안에 부분
public static void main(String[] args) {
//public : 접근지정자(모두 접근 가능)
//static : 자신이 알아서 메모리에 올라감
//void : return-반환값이 없다. 줄거없음. 실행하면 끝. 자료형 8개 중 하나만.
//public static void 빼먹으면 에러남
//main : 메소드명 - method명은 반드시 소문자로 시작해야함. 두번째 단어의 첫글자는 무조건 대문자. testOne
//String[] args : 매개변수. 밖에서 할당하는 변수값. string은 문자열
// \n 엔터
// System.out.println(); 엔터
System.out.println("자바 첫시간!");
System.out.println("오늘은 수요일!!");
System.out.println();
System.out.println("나보이냐?\n");
}
실행 결과
class Test2 {
public static void main(String[] args) {
//args = argument
//static 내가 따로 손을 대지않아도 자동으로 메모리상에 올라가기 때문에 실행가능 - 모든 프로그램은 메모리에 올라가야 실행이 가능.
//이걸 사용하지 않는다면 별도의 작업을 해줘야 함
//정수형 변수 integer. 반드시 소문자로 시작(정석). 두번째단어의 첫글자는 대문자 numOne. 상수일때만 NUM 전부 대문자로 사용
/*
변수선언. 빈그릇만 생긴것. 초기값을 설정하지 않으면 쓰레기값만 들어있다.
int num1;
int num2;
int의 저장가능범위 : 약 -21억~21억 이 범위 초과시 long으로 지정해야 함
범위를 초과하면 런타임 에러 발생. 코딩상의 문제가 아니라 로직상의 에러
변수 초기화.(초기값 설정)
num1 = 20;
num2 = 3;
*/
//자료형 : int
int num1 = 20;
int num2 = 3;
int num3;
int num4;//초기값설정 안했으므로 쓰레기값이 들어있다
//System.out.println(num3); //작성 시 쓰레기값만 들어있어서 오류
num3 = num1 + num2 ;
num4 = num1 - num2 ;
System.out.println("num1 : " + num1);
System.out.println("num2 : " + num2);
System.out.println(num1 + "+" + num2 +"= " + num3 );
System.out.println(num1 + "-" + num2 +"= " + num4 );
System.out.print("랄라\n\n"); //print는 매개변수가 반드시 필요. println은 없어도 컴파일 가능
//format
System.out.printf("%d+%d=%d\n",num1,num2,num3);
System.out.printf("%d-%d=%d\n",num1,num2,num4);
}
}
실행 결과
class Test3 {
public static void main(String[] args) {
//main 메소드는 프로그램의 시작을 의미
////원의 면적과 둘레를 구하기 위해 변수 선언. 초기값 설정 안해서 쓰레기값 들어있음
int r = 10;
float area;
float length;
//float area, length; 한줄로 선언 가능
// 실수형 : float(100자리까지 가능), double(그 이상도 저장 가능) - 저장가능범위가 더블이 두배!
area = r * r * 3.14f; // float으로 인식하라고 f붙여줌!
length = 2 * r * (float)3.14; // float으로 인식하라고 (float)붙여줌!
//System.out.println(area);
System.out.printf("반지름: %d, 넓이: %f\n",r, area); // %d 정수 %f 플롯 %g 더블
//실수가 표시할 수 있는 이진수는 6개. 부호표시로 하나 소진해서 다섯개 표시
//System.out.println(length);
System.out.printf("반지름: %d, 둘레: %.2f\n",r, length);
//float의 소수점길이 조정하는거는 printf에서만 가능함 println에서는 안됨
System.out.println("반지름: " + r + ", 넓이: " + area + ", 둘레: " + length );
/*
String은 클래스. 문자열. ""로 묶어줘야함
char은 자료형. 문자. ''로 묶어줘야함
기본자료형은 총 8개 존재. boolean char byte short int long float double
참조자료형 -> 클래스. 배열, 클래스, 인터페이스 등이 있습니다.
값이 아닌 그에 대한 참조 즉 주소를 가지고 있습니다
*/
}
}
실행 결과
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
//import java.io.*;
/*
import는 C언어에서의 #include와 같다.
C:\Program Files\Java\jdk1.8.0_191\src.zip\java package 위치를 알려줘야 해서 import하는 거라고 이해!
import java.io.* - io패키지에 있는걸 모두 가져와. 메모리낭비. 되도록이면 하나씩 적어주는게 좋음
io는 input과 output에 관련된 패키지
이클립스 사용할 때 알아서 툴이 import 시켜줌. 굳이 외울 필요는 없음
*/
class Test4 {
public static void main(String[] args) throws IOException {
/*
오류가 생겼을때 뺀다.
throws 키워드는 실행시간에 예외가 발생했을 경우, 해당 예외를 직접처리하지 않고 다른 곳에서 처리하도록 예외를 던지겠다
*/
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
/*
BufferedReader 는 class.
System.in : 키보드로 입력한 1개의 문자 읽음.
InputStreamReader : System.in을 통해서 읽은 문자를 2byte로 변경시킴. 10을 '1'과 '0'이 아니라 '10'으로 인식하게 해줌
한쪽에서 들어온 데이터를 다른쪽으로 넘겨주는 역할을 하는게 브릿지클래스
BufferedReader : 버퍼로 입력 받아 처리속도를 높임
-> 만약 이 세가지가 없었다면 일일히 클래스를 선언해놔야 사용가능. 이미 api에 등록되어 있다.
API : 사용설명서 개념. 여러 클래스와 메소드를 정리해놓음.
링크 : https://docs.oracle.com/javase/8/docs/api/
java > javalang > 이 패키지안에 String, System 있음. 사용빈도가 높은 것들은 메모리에 무조건 올려놓음
매번 import 시키지않아도 바로 사용할 수 있도록!
*/
int r;
double area, length;
System.out.println("반지름?"); //줄바꿈 prinfln. print는 줄바꿈없음.
r = Integer.parseInt(br.readLine());
/*
사용자가 입력하는 것을 읽어오는 명령어. 문자로 저장함. br.readLine();
enter도 아스키값이므로 br에 들어있는 '10'과 enter값을 가져온다
이걸 숫자형으로 변환하기 위해 사용하는 게 Integer.parseInt();
클래스안엔 여러 method 존재. BufferedReader의 method 중 하나가 readLine 인 것.
*/
area = r * r * 3.14f; //자바는 실수형을 입력하면 double로 세팅이 됨. 지금은 area를 double로 선언해놔서 오류 안생김
length = r * 2 * 3.14;
System.out.printf("반지름: %d, 넓이: %g, 둘레: %g\n",
r, area, length); //줄바꿈은 ',' 나 '+' 뒤에서 해야 이어서 인식됨
}
}
실행 결과
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
class Test5 {
//클래스는 기본적으로 접근지정자가 public - 누구나 접근 가능
public static void main(String[] args) throws IOException {
//선언부
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String name;
int kor, eng, mat, tot;
//입력부
System.out.print("이름?"); //사용자가 입력. 수지
name = br.readLine(); // 두번째단어는 대문자!! readLine
// String으로 입력을 받고 반환값도 String 이어서 문제없음.
System.out.print("국어?"); //50
kor = Integer.parseInt(br.readLine());
System.out.print("영어?"); //50
eng = Integer.parseInt(br.readLine());
System.out.print("수학?"); //50
mat = Integer.parseInt(br.readLine());
//연산부
tot = kor + eng + mat;
//출력부
System.out.printf("이름:%s, 국어:%d, 영어: %d, 수학: %d, 총점은 %d입니다.\n",name, kor, eng, mat, tot);
// string - '%s' 쓰려면 printf로 써야함!
// 항상 구조가 선언- 구조 입력 - 연산 - 출력 순대로 진행됨
}
}
실행 결과
'Dev > Java' 카테고리의 다른 글
[java] 배열, 달력만들기 (0) | 2019.01.21 |
---|---|
[java] for문, switch문 (0) | 2019.01.21 |
[java] 반복문 (0) | 2019.01.21 |
[java] 간단한 계산기 만들기 (0) | 2019.01.21 |
[java] 기초 (2) | 2019.01.21 |