
이 글은 Udemy강의 중 FULL STACK JAVA DEV에서 JAVA강의 부분을 보고 작성한 내용입니다.
또한 여러 블로그를 참고하여 정리한 개인 공부 블로그입니다.
OOP를 공부 할 때, 자주 보게 될 주요 키워드를 언급하겠다.
1. Class,Instance (클래스와 객체)
2. Abstraction (추상화)
3. Encapsulation (캡슐화)
4. Inheritance (상속)
5. Polymorphism (다형성)
뒤에서 instance에 대해 다루겠지만,,,
클래스는 특정 역할을 수행하기 위한 멤버 변수(property,속성)와 메서드 (action,행위)로 정의된 것을 의미함.
class는 object를 정의하고, 이 Class에서 정의한 모든것이 Memory에 할당될 때 이를 Instance(객체)라고 한다.
(Heap에 할당되면 instance로 볼 수 있다.)
public class Car {
private int doors;
private String engine;
private String driver;
private int speed; //멤버 변수들
void speedUp() { speed++;}
void speedDown() { speed--;} // 메서드
public int getDoors() {
return doors;
}
public void setDoors(int doors) {
this.doors = doors;
}
}
흔히 클래스의 멤버 변수는 정보 은닉을 위해 private 접근 제어자로 설정한다.
따라서 다른 클래스에서 instance를 생성하더라도 해당 변수에 접근할 수 없다.
그러나 데이터의 변경이 필요하거나 데이터의 값을 얻어야하는 경우가 있다. 이때 사용하는 것이 getter, setter 메서드이다.
설정한 변수 값을 읽어올 때 사용.
외부에서 객체의 데이터를 읽을 때 사용.
값을 반환하기 때문에 return 값이 필요하다.
public int getDoors() {
return doors;
}
외부에서 method를 통해 필드에 접근해서 값을 바꿀 수 있는 method이다.
필드값을 설정해야하므로 매개변수가 필요.
public void setDoors(int doors) {
this.doors = doors;
}
인텔리제이에서 마우스 우클릭 후

생성을 클릭한다.

그리고 만들고 싶은 member변수들을 클릭한 후 확인을 누르면
저절로 생성이 된다.
object를 모든 instance를 포괄하는 넓은 의미를 가지고, instance는 해당 object가 어떤 class로부터 생성된건지에 강조하는 느낌이다.
클래스이름 참조변수이름 = new 생성자();로 instance를 생성한다.
Car a = new Car();
Car b = new Car();
객체의 값에 접근하려면 '.'을 사용하여 접근할 수 있다.
public class Main {
public static void main(String[] args) {
Car a = new Car();
Car b = new Car();
System.out.println(a.getDoors());
}
}
이에 대해 정리된 그림이다.

그림 출처 : 클래스, 객체, 인스턴스의 차이