자신에게 친절할 것 :)

Web Developing/Java

[Java] 객체지향 개념

Tashapark 2024. 4. 20. 18:00
728x90

// 남궁 성의 자바의 정석 듣는 중//

 

파이썬 챌린지 시작하니깐.. 자바 강의를 미루게 돼...

섞이면 안되는 데 ㅎ. 

정처기도 시험 준비 시작...ㅎㅎㅎ

시르다..


- 객체는 참조 변수를 통해서 사용할 수 있기 때문에 무조건 

 1) 참조 변수 선언 (리모컨 무조건 필요)

 2) 객체 생성 후

 3) 참조 변수에 객체 저장. 

=> 걍 한 번에 예, Tv t = new Tv(); 로도 가능

 

- 크게 보면 

  1) 클래스 작성 (설계도)

  2) 객체 생성 (제품)

  3) 객체 사용 -> 변수랑 메소드를 사용 해서 호출함. 

 

- 타입이 원래 존재 하던 게 아니라 Tv 리모컨이니깐 걍 Tv 타입으로 참조 변수를 만들어주고 대신 객체는 Tv타입이어야만 함. 

- 반드시 둘이 일치되게 만들어 줄 것. 

- 클래스에서 정의된 대로 객체를 만들었고, 객체를 사용하려면 무조건 참조변수를 거쳐야지만 사용이 가능함. 

 

- 객체 . 뒤에 메소드랑 변수 모두 써서 사용 가능

- 메서드 사용을 메서드 호출이라고 부름.

- 만약에 중간에 t2 = t1을 넣어주면, t2의 참조변수와 객체의 연결이 끊겨서 t2는 사용할 수 없게 됨. 

- t1, t2 모두 하나의 주소 값을 가리키게 됨. => 여러 개의 참조 변수가 1개의 객체를 사용할 수도 있음. 

- 자바는 의미없어진 데이터를 알아서 청소해주는 GC(가비지 컬렉터) 지워줌. 

 

- 변수는 무조건 하나의 값만 저장되므로 하나의 참조변수가 여러 개의 객체를 가리킬 수 X

- 반대는 가능

 

- 참조변수는 처음 생성 시 null이니깐 객체를 넣어 줌. 

- 한 번에 배열로 넣을 수 있음. {} 사용. 

 

- 객체 배열은 참조 변수 배열과 결국 같음 

- 참조 배열만 만들고 끝내지 말고, 객체를 각각 할당해 줘야 함. 

 

- 클래스는 객체의 설계도인 동시에 데이터와 함수의 결합임. 

- 관련된 데이터를 다루는 함수를 같이 묶어 놓은 것. 

 

 

- 클래스로 묶으면

1) 코드가 반복되는 것이 사라지고, 더 간결해짐. 

2) 관련된 것끼리 강하게 묶을 수 있음. 

3) 유지보수가 편해짐. 

 

- 선언 위치에 따른 변수의 종류는 3개 : cv, iv, lv

- 클래스 영역에서는 선언문만 가능함. 

- cv = static + iv

 

- 엄밀히 말하면 틀릴 수 있지만, 걍 객체는 iv를 묶어 놓은 것으로 생각하면 편함. 

=> iv는 객체가 생성될 때 만들어지는 것!!!!

 

 

- CPU는 속도 차이 때문에 SSD/HDD에서 바로 파일을 못 불러오고 RAM(메모리)을 거쳐야만 함. 

- SSD/HDD에서 RAM으로 파일을 보내는 게 로딩이고, 반대가 저장save임. 

- cv는 클래스가 메모리에 로딩될 때 자동적으로 생기는 것이기 때문에 객체를 생성할 필요 X -> 아무때나 사용 가능. 

- lv는 메소드 영역 안의 범위 scope에서만 적용. 

 

 

- 공통으로 해야 하는 속성 앞에 static을 붙여줄 것. 

 

 

- cv는 사용할 때 iv랑 똑같이 참조변수를 써도 되지만, 그보다는 클래스 이름으로 해야 나중에 iv랑 안 헷갈림. 

- 참조변수로 써도 작동은 하지만 권장 X

 

 

728x90
반응형

'Web Developing > Java' 카테고리의 다른 글

[Java] 객체지향 언어  (0) 2024.04.13
[java] 배열 3  (0) 2024.04.13
[java] 배열2  (0) 2024.04.12
[Java] 배열  (0) 2024.04.02
[Java] 조건문과 반복문: if, if else if, switch문 // for, while, do-while문  (1) 2024.03.29