모든 프로젝트(프로그램)는 하나의 main() 메서드가 있어야 하며, main() 메서드는 반드시 1개만 존재해야 한다.
하나의 소스코드 파일은 하나의 class로 작성한다.
자바는 객체지향 프로그래밍(Object Oriented Programming) 언어이다.
객체(Object), 인스턴스(Instance) 실질적인 데이터, 클래스(Class)
객체 : 개념, '자동차'
인스턴스 : 객체를 실체화 한 것, '제네시스' // 변수의 확장개념
클래스 : 객체를 정의해 놓은 것, '제네시스 설계도'
=> 우리가 작성하는 코드는 설계도다.
변수(Variable) p 34
-> 자바의 변수는 반드시 타입(자료형)을 지정하여 사용
한번 타입이 선언된 변수는 다른 타입의 데이터를 저장할 수 없다! 오류가 나서 실행이 되지 않음
변수 하나의 값을 저장할 수 있는 메모리 번지에 붙여진 이름
타입을 저장할 수 있다.(javascript와 다른 점)
정해진 타입만 넣을 수 있다. 변수는 호이스팅이 안됨
변수 선언
변수를 사용하려면 변수 선언이 필요
변수 선언은 어떤 타입의 타입의 데이터를 저장할 것인지, 그리고 변수의 이름이 무엇인지 결정
변수의 타입(Date Type) p 39
변수는 선언될 대의 타입에 따라 저장할 수 있는 값의 종류와 허용 범위가 달라짐
자바는 기본 자료형과 참조 자료형이 있다.
(저장하는 메모리 영역이 서로 다름)
'a' 문자, 표기를 위한 숫자, 거의 사용하지 않는다.
"한글" 글자, 문자열
출력 System.out
입력 System.in
예) 에코
int 후에 line을 받으면서 line이 처리가 되지 않는다.
import java.util.Scanner;
public class FirstClass {
public static void main(String[] args) {
// 입력 명령문 - 키보드로부터 입력
Scanner scan = new Scanner(System.in);
// 문자열 입력
String str = scan.nextLine();
// 숫자 입력
int num = scan.nextInt();
// 입력받은 값 출력
System.out.println(str);
System.out.println(num);
}
}
기본자료형(Primitive Type) - stack에 저장 크기 순서로 나열, 크기 확정 변하지 않음.
1) byte : 1byte, 8bit, 정수
2) short : 2byte 정수
3) char : 2byte 문자, 정수
4) int : 4byte, 정수
5) long : 8byte, 정수, 입력 시 접미사 L을 붙여야 한다. 곱셈 식에 사용
6) float : 4byte, 실수, 입력 시 접미사 F를 붙여야 한다.
7) double : 8byte, 실수, 곱셈 식에 사용
8) boolean (크기가 없다. 1bit) : 진리값, true/false
참조 자료형(Reference Type) p 146
참조변수 : 인스턴스의 주소를 저장하는 변수, Heap 영역에 저장되는 데이터의 자료형.
String : 문자열 " " 사이에 값을 작성(글자의 수에 따라서 공간의 크기가 다름, 대문자 S로 시작)
문자로 되어 있는 나열된 데이터, 즉, 문자열은 인스턴스라고 볼 수 있다. 크기를 규정할 수 없다.
데이터가 실제로 들어왔을 때 저장 공간이 정해짐. 문자열은 힙영역에 저장된다.
스택 영역에 기본자료형이 만들어진다.
프로그램 - 건물로 생각해 보기
공간을 분할해서 사용한다.
메서드 영역 - 설계도를 펼쳐놓는 곳
콜 스택 - 작업자, 작업순서가 표현 언제, 무엇을 만들어야 한다, 인스턴스의 주소를 저장, 위치정보
힙영역 - 물건을 만드는 영역, 인스턴스 저장
import java.util.Scanner;
public class FirstClass {
public static void main(String[] args) {
// 변수의 선언과 사용
// 변수 선언 : 타입 변수명;
int age;
double value;
// 변수 사용 : 대입, 출력
age = 25;
value = 3.14;
// 입력 시 주의해야 할 타입들
float favlue = 3.14F;
long lvalue = 1000000000000L;
// 문자 변수
char ch = 'A';
// boolean
boolean b = true;
// 문자열
String str1 = "이건 문자열입니다.";
// 여러 변수를 함께 선언
// 같은 타입의 변수는 함께 선언
int a1, a2, a3;
int iv1 = 5, iv2 = 6, iv3 = 9;
/* 다른 타입의 경우 오류 발생
int a4, char ch2; */
}
}
이스케이프 문자 p 50
문자열 내부에 역슬래시\가 붙은 문자를 사용
이스케이프 문자 | 실행 |
\" | "문자포함 |
\' | '문자포함 |
\\ | \문자포함 |
\u16진수 | 16진수 유니코드에 해당하는 문자 포함 |
\t 역할부여 | 출력시 탭만큼 띄움 |
\n 한문장에 여러줄을 줄력할 때 사용 | 출력시 줄바꿈 |
\r | 출력시 캐리지 리턴(커서를 제일 처음 위치로 옮겨줌) |
public class FirstClass {
public static void main(String[] args) {
// 이스케이프 문자 사용
// 출력하고 싶은 문자열 - 우리아빠는 "변호사"입니다.
System.out.println("우리아빠는 \"변호사\"입니다.");
System.out.println("\t우리아빠는 \"변호사\"입니다.");
System.out.println("우리아빠는\n \"변호사\"입니다.");
System.out.println("우리아빠는 \"변호사\"입니다.\r5");
}
}
모니터에 출력하기 위한 명령어
1) System.out.printlf - 출력 후 줄 바꿈
2) System.out.print - 출력 후 줄을 바꾸지 않음.
public class FirstClass {
public static void main(String[] args) {
// print를 사용하는 경우
System.out.println("입력값 : ");
int num2 = scan.nextInt();
System.out.println("입력값은 " + num2 + "입니다.");
System.out.print("입력값 : ");
int num3 = scan.nextInt();
System.out.println("입력값은 " + num3 + "입니다.");
}
}
'공부기록 > Java' 카테고리의 다른 글
4월 10일 (2) Java - 참조 변수, 배열 (0) | 2023.04.10 |
---|---|
4월 10일 (1) Java - 제어문 (0) | 2023.04.10 |
4월 7일 (2) Java - 연산자 (0) | 2023.04.07 |
4월 7일 (1) Java - 인스턴스, 형 변환, Scanner (0) | 2023.04.07 |
4월 6일 (1) Java - 특징, 프로그램 설치 (0) | 2023.04.06 |