본문 바로가기
공부방/자바프로그래밍

자바 클래스와 객체

by 오후 네시 2020. 7. 15.

1. 객체지향 프로그래밍의 4대 특성


1) 캡슐화 – 중요한 데이터(변수) 숨김. public method를 통해 접근

2) 상속 – 코드 재사용

3) 다형성 – 상속관계에서 다양한 동작 구현

4) 추상화 – 추상클래스와 인터페이스



2. 클래스의 구성요소


1) 속성(변수) - private으로 설정. 멤버 변수라고도 부름.

2) 기능(method) - public으로 설정. 멤버 함수라고도 부름.

3) 자동차 클래스를 만든다면

- 변수 : 색상, 속도, 주행거리

- method : 가속하기, 감속하기


3. class와 object(객체)


1) class를 설계도라고 하면 object(instance)는 class의 내용을 메모리에 생성한 제품이라고 할 수 있다.

2) object를 생성하기 위해서는 new 연산자를 사용한다.


4. 객체 만드는 법


자료형 객체참조변수 = new 자료형();

Tv t = new Tv();


① Tv t -> Tv 클래스의 객체참조변수 t가 만들어짐

② t = new Tv(); -> Tv클래스의 객체가 생성되고 시작번지값을 t에 복사.


5. 접근권한 지정자


1) public -> 모든 위치에서 참조 가능


2) protected -> 같은 패키지 + 상속관계가 있을 경우 참조 가능


3) default -> 같은 패키지에서 참조 가능(아무것도 안적었을때임)


4) private -> 클래스 내부에서만 사용 가능


6. 캡슐화


외부에 공개하는 것은 public으로...

외부에 비공개하는 것은 private으로 설정.


멤버변수는 데이터를 저장하므로 일반적으로 private로 설정하고,

setter,getter로 데이터를 입력하고 받아온다.


7. setter, getter


1) getter : 값을 읽는 method.

get+변수명 : get+name -> getName()

public String getName(){

 return name;

}


2) setter : 값을 입력하는 method

set+변수명 : set+name -> setName()

public void setName(String name){

 this.name = name;

}


3) 멤버변수에 대해 전부  setter와 getter를 만들어야 한다.

 - 캡슐화의 목적

 - 데이터 입력 시 코드작성으로 오류체크가 가능하다.


4) setter getter 단축키

① private 변수 선언 후,

② 마우스 우클릭해서 팝업메뉴 띄우고

③ source 메뉴

④ Generate getter and setter

⑤ select All -> OK

혹은

Alt + Shift + S -> R


8. 생성자


1) 리턴타입이 없음 -> public Book(){}

2) 클래스 이름과 같은 method

3) new에 의해 객체가 생성되면 자동으로 호출됨.

4) 매개변수가 있는 생성자도 있음.


Tip :


1. 모든 기능은 해당 클래스에서 만드는 것이 좋다.

 - main 메소드에서 코딩하는 것이 아니라 해당 클래스에서 메소드를 만든 뒤 main에서 불러 쓰는 것이 좋음.


2. this.변수 -> 클래스에서 사용하는 멤버변수임.


3. 클래스를 공부하고 난 뒤의 내 생각


클래스 생성과 사용법은 데이터베이스 정규화와 비슷하다고 생각됨.

즉, 3차 정규화를 하듯이 클래스를 정규화하면

정규화된 테이블끼리 조인되듯이 클래스끼리 연결될 것이고

주가 되는 클래스를 객체화하면 객체화된 그 클래스 내부의 메소드를 통해 다른 클래스에 접근할 수 있다



'공부방 > 자바프로그래밍' 카테고리의 다른 글

자바 final  (0) 2020.08.07
자바 static 변수(정적변수)  (0) 2020.07.30
자바 상속  (0) 2020.07.26
자바 생성자  (0) 2020.07.20
자바 Method(메소드)  (0) 2020.07.13
자바 배열  (0) 2020.07.05
자바 반복문(for, while, do while, break,continue)  (0) 2020.07.04
자바 조건문(if, swich)  (0) 2020.07.02

댓글