-
특징
- 한 클래스에 관한 속성을 묶어서 표현할 수 있다(속성 + 동작)을 하나로 묶을 수 있다
- 캡슐화
- 관련 있는 속성과 기능을 하나로 묶어서 표현 가능함
- 추상화
- 현실 세계의 개념이나 사물을 코드로 모델링 가능
- 재사용성
- 클래스를 기반으로 여러 객체를 생성가능함
- 상속 / 다형성
- 기존 클래스를 확장하거나, 같은 인터페이스로 다른 동작을 구현 가능함
- 클래스는 관례상 대문자로 시작하고 낙타 표기법을 사용한다.
-
장점
- 코드의 구조가 명확해지고 유지보수 쉬움
- 중복 줄이고 재사용 가능
- 데이터와 동작을 한 덩어리로 다뤄서 직관적임
-
단점
- 작은 프로젝트에서는 클래스 구조가 오히려 복잡해질 수 있음
- 객체지향 개념을 잘못 적용하면 코드가 불필요하게 무거워짐
-
재사용성
- 한 클래스를 만들면 그걸 여러가지 객체로 찍어낼수 있다.
class Car {
String brand;
int speed;
void drive(){
System.out.println(brand + " is driving at " + speed + "km/h")
}
}
이 Car클래스를 바탕으로 여러 객체를 만들 수 있다.
Car car1 = new Car();
car1.brand = "Hyundai";
car1.speed =100;
Car car2 = new Car();
car2.brand = "Toyota";
car2.speed = 80;
car1.drive(); //Hyundai is driving at 100km/h
car2.drive(); //Toyota is driving at 80km/h
-
가장 큰 포인트는
- Car 클래스는 여기서 설계도 역할만 함
- car1,cae2 같은 건 실제 객체(인스턴스)
-
맴버변수
- 이 변수들은 특정 클래스에 소속된 맴버이기 때문에 이렇게 부른다.
- 특징
- 클래스 안에서 선언되고 객체마다 별도로 값을 가짐
- 보통 private 으로 선언해서 직접 접근 못 하게 막고, getter/setter 같은 메서드로 다룸
- 인스턴스 생성시 같이 만들어짐
- 첫글자는 소문자로 시작함
-
인스턴스(객체)
- 설계도로 찍어낸 물건
- 예시
- new Car() 해서 만든 car1, car2
-
맴버변수
- 클래스 안에 정의된 속성
- 인스턴스가 생길 때마다 그 인스턴스가 자기 멤버 변수를 가짐
-
변수 , 클래스, 변수, 맴버변수의 차이
- 클래스 = 설계도
- 객체 = 실제 자동차
- 변수 = 자동자를 가리키는 리모컨
- 맴버 변수 = 자동차의 핸들이나 바퀴 같은 부품
- 변수랑 필드(데이터 항목을 가르키는 전통적인 용어)는 자바에서는 같은 뜻이다.