-
(김영한의 자바 입문) 3 - 내용 정리개발/Java 2024. 5. 28. 13:47
※ 입문의 경우 기초적인 내용이 많아 참고하면 좋을 내용이나 까먹었던 내용 위주로 적는다.
※ [ ] 내용은 강의 자료 번호 및 목차를 나타낸다.
[3. 연산자]
0으로 나누기는 수학에서 허용하지 않아 프로그래밍에서도 작동하지 않는다.
.equals() : 문자열 비교 메서드[6. 스코프, 형변환]
* 형변환(Casting) : 금속이나 다른 물질을 녹여서 특정한 형태나 모양으로 만드는 과정을 의미한다.
형변환은 묵시적 vs 명시적 형변환이 있다.
개발자가 직접 형변환을 하는 것이 명시적 형변환이다.
ex)
double doubleValue = 1.5;
int intvalue = 0;
intValue = (int) doubleValue; <--- 작은 int형에 큰 double 형을 넣지 못하므로 명시적으로 형변환 시킨다.
만약 기존 범위를 초과해서 표현하게 되면 - 로 전혀 다른 숫자가 표현되는데, 이런 현상은 오버플로우 이다.
이런 오버플로우가 발생하는 것 자체이기 때문에 아예 나타나지 않게 애초에 intValue가 Long 타입으로 설정해준다.
[7. 훈련]
사용자의 입력을 받는 클래스 = Scanner
Scanner scanner = new Scanner(System.in)
scanner.nextLine() : 입력을 String으로 가져온다.
scanner. nextInt() : 입력을 Int 로 가져온다.
엔터(\n) new line character : 줄바꿈 문자 or 개행문자
새로운 라인으로 넘긴다.
※ nextInt() 는 숫자만 가져가기 때문에 \n이 남는다.따라서 nextInt() 만 사용하고 다음에 사용값을 받는 경우 문자를 입력하지 않았는데도 넘어가는 현상이 발생한다.
이를 input.nextLine() 을 통해 한 줄을 그냥 읽게 만들어준다. (= \n 없애기)[8. 배열]
* 기본형vs참조형
- 기본형(Primitive) : 사용하는 값을 직접 넣을 수 있다. (int, double, boolean 등)
- 참조형: 메모리 참조값을 넣는 것 (배열, 객체)
기본형은 선언과 동시에 사이즈가 정적으로 정해짐.
배열은 동적으로 사이즈 변경이 가능하다. (동적 메모리 할당)
※ 리팩토링 : 기존 코드의 기능은 유지하면서 내부 구조를 개선하여
가독성을 높이고 유지보수 용이하게 하는 과정이다.
=> 기능은 똑같은데 코드를 개선하는 것* 배열
배열.length : 배열의 길이
배열생성과 초기화
ex) int[] students = new int[]{80, 90, 100, 70, 60};
ex) int[] students = {80, 90, 100, 70, 60}; (한 줄 선언 및 초기화만 가능)
행(row) 열(column)[9. 메서드]
public static int add(int a, int b) <-매개체가 된다.
반환타입 메서드 이름 매개변수(파라미터)
int : 반환타입
add : 메서드 이름
int a, int b : 메서드 호출할 때 전달하는 입력 값(메서드안에서만 사용함)
파라미터 = 매개변수
* 인수 / 매개변수
- 인수(argument) : hello, 20 처럼 넘기는 값을 인수(들어가는 수), 인자, 아규먼트
호출자 입장에서 넘기는 값, 전달하는 수
- 매개변수(parameter) : 메서드를 정의할 때 선언한 변수 String str, int age 를 매개변수, 파라미터라 한다.
메서드를 호출할 때 인수를 넘기면, 그 인수가 매개변수에 대입된다.
인수 : 들어가는 수로 메서드 내부로 들어가는 값을 의미 -> 들어가는 정확한 값
매개변수 : 매개와 변수 합성어로 중간에서 전달하는 변수로 -> 어떤 타입을 어떤 변수로 받을 것인지
메서드 호출부와 메서드 내부 사이에서 값을 전달하는 역할하는 변수
odd : 홀수
even : 짝수
자바는 항상 변수의 값을 복사해서 대입한다. ★★★★★
int num2 = num1
num1에 들어가있는 값을 읽고 복사해서 num2에 넣는 것이다.
* 메서드 오버로딩( Overloading )
: 이름이 같고 매개변수가 다른 메서드를 여러 개 정의하는 것
오버로딩 번역하면 과적, 즉 과하게 물건을 담았다는 뜻이다.
같은 이름의 메서드를 여러개 정의했다고 이해
메서드 시그니처 = 메서드 이름 + 메개변수 타입(순서)
메서드를 구분할 수 있는 고유한 식별자나 서명을 뜻한다.
반환타입은 시그니처에 포함하지 않는다.
ex) int add(int a, int b) double add(int a, int b)'개발 > Java' 카테고리의 다른 글
(김영한의 자바 기본) 6 - static (1) 2024.10.23 (김영한의 자바 기본) 5 - 자바 메모리 구조 (메서드, stack, heap) (1) 2024.10.23 (김영한의 자바 기본) 4 - 접근 제어자 (private, default, protected, public) (0) 2024.10.23 (Do it 자바) 2 - 변수와 자료형 (1) (0) 2023.05.31 (Do it 자바) 1 - 자바 프로그래밍 시작하기 (2) 2023.05.25