Spring/Java
[Java - OOP 기초1] 클래스와 객체
jungha_k
2022. 9. 7. 00:00
🧱클래스와 객체
클래스 : 객체를 생성하는데에 사용하는 하나의 틀, 설계도
객체 : 클래스를 통해 생성된 객체 = 인스턴스
*인스턴스와 객체의 차이? : 객체 >= 인스턴스(사실상 같다!) 그러나 인스턴스는 어떤 '객체로부터 생성된것인지'를 강조
✨클래스 정의
class 클래스명 { //클래스 정의
~~~~~~
}
✨클래스의 구성 요소
public class ExampleClass {
int x = 10; // (1)필드
void printX() {...} // (2)메서드
ExampleClass {...} // (3)생성자
class ExampleClass2 {...} // (4)이너 클래스
}
(1)필드 (=속성): 클래스의 속성을 나타내는 변수
(2)메서드 (=기능) : 클래스의 기능을 나타내는 변수
(3)생성자 : 클래스의 객체를 생성하는 역할 = 인스턴스 객체를 초기화해줌
(4)이너 클래스 : 클래스 내부의 클래스
클래스의 멤버 = (1),(2),(4)
✨객체의 생성 : new 키워드를 이용하여 생성
객체 생성 후에는 ‘ . ’포인트 연산자를 통해 객체멤버에 접근 가능함
class CarTest {
public static void main(String[] args) {
Car bmw = new Car(); // Car 클래스를 기반으로 생성된 bmw 인스턴스
Car tesla = new Car(); // Car 클래스를 기반으로 생성된 tesla 인스턴스
Car audi = new Car(); // Car 클래스를 기반으로 생성된 audi 인스턴스
}
클래스명 참조_변수명; // 인스턴스를 참조하기 위한 참조변수 선언
참조_변수명 = new 생성자(); // 인스턴스 생성 후, 객체의 주소를 참조 변수에 저장
✨참조 변수 : 실제 데이터 값 X, 힙 메모리의 주소값을 저장 O
✨new : 객체를 힙 메모리에 넣어라!
ex) 클래스 참조_변수명 = new 생성자();
Person p = new Person();
----------------------------------------------------------------------------------------------------------------------------
클래스 영역에 저장 스택영역 주소값 힙메모리에 저장 인스턴스 생성, 힙 메모리 영역
필드값 : 실제 저장공간은 객체 내부
메서드 : 객체 내부가 아닌 클래스 영역에 저장되기 때문에,
여러번 선언할 필요 X, 한번만 저장해두고 필요할 때 찾아쓰기 O
✨객체 접근 및 활용
참조 변수명.필드명 // 필드값 불러오기
참조 변수명.메서드명() // 메서드 호출
ex)
public class 저쩌고{
public static voidd main(String[] args){
어쩌고 A = new 어쩌고 ("~", "~"); //필드 호출
어쩌고.메서드1(); //메서드 호출
어쩌고.메서드2();
}
}
class 어쩌고 {
필드 및 메서드 선언
}
이번에 객체 지향에 대해 다시 배우면서
용어만 익숙해져있지 정확한 뜻은 설명할 수 없단 것을 깨달았다ㅜ_ㅜ
자바의 정석을 듣진 않았지만 남궁성 강사님이 왜 10번 이상 돌려들으라 했는지 알거같음,,