객체를 만들기 위한 설계도
클래스의 구성요소에서 생성자를 제외한 나머지 요소들을 클래스의 멤버라고 함
➡️ 필드
메소드
이너 클래스
클래스로 객체를 만들고, 만들어진 객체를 인스턴스
라고 함
클래스명 변수명 = new 클래스명();
❗️클래스 영역 (메소드 영역)
❗️스택 영역
❗️힙 영역
new
클래스의 속성을 정의 (변수)
변수의 종류: 클래스 변수, 인스턴스 변수, 지역 변수
➡️ 필드 : 클래스 변수
와 인스턴스 변수
static
키워드를 붙임 ➡️ static(정적) 변수
클래스가 생성될 때 함께 생성되어 클래스 영역에 저장됨
클래스의 공유 변수 성질을 가짐
인스턴스가 없어도 사용할 수 있음
➡️ {클래스명}.{클래스 변수명}
직접 초기화 하지 않아도 컴파일러가 자동으로 초기화
각 인스턴스 마다의 성질을 나타내는 변수
인스터스 생성 후에 사용
➡️ {인스턴스명}.{인스턴스 변수명}
직접 초기화 하지 않아도 컴파일러가 자동으로 초기화
이너 클래스 내부에 선언
➡️ ❗️ 이너 클래스 밖에서 사용할 수 없음
직접 초기화해서 사용해야 함
클래스의 기능을 정의 (함수)
{인스턴스명}.{메소드명}
으로 호출
리턴 타입이 void
가 아니면 반드시 return
문 필요
❗️생성자는 리턴 자체가 없는 특수 메소드이기 때문에 return
문 필요 ❌
하나의 클래스 안에 같은 이름의 메소드를 여러개 정의
조건
1. 매소드의 이름이 같아야 함
2. 배개변수의 개수 혹은 타입이 달라야 함
// 매개변수가 없는 println 메소드
System.out.println();
// 매개변수의 타입이 int인 println 메소드
System.out.println(int n);
// 매개변수의 타입이 double인 println 메소드
System.out.println(double n);
// 매개변수의 타입이 float인 println 메소드
System.out.println(float n);
// 위 메소드 모두 println 메소드를 오버로딩
객체지향.... 너무 어렵다..
그래도 오늘은 좀 아는 내용이라 금방 끝내고 어제 못풀었던 자바 심화 문제를 풀었다,,,
근데 문제 설명이 살짝 불친절해서 문제 해석에만 애를 먹었다 🫠 ...
이제 fork 하고 pull request 하는 것에 맛들린 것 같다.
제출 하지 않아도 되는 과제까지 마구 제출하고 있다!
잔디도 심고 문제 푼 증거도 남기고 fork-pull request 연습도 하고 아주 만족
.
.
.
사실 이 글은 어제 공부한 내용이다 ㅎㅎ...............................
어제 블로그를 열심히 써야한다는 말을 굿모닝 세션에서 한 시간을 들었는데, 어제 도저히 피곤해서 못쓰고 자버렸다....
그래서 그냥 어제가 오늘인 척 하면서 썼다... 🫠 ...
모르는 척... 자연스러운 척..... 🫥