[Java] 객체지향 개념 추가 정리 ①

하리비·2025년 3월 6일
0

📖 객체지향 언어

💡 탄생 배경 자세히는 몰라도.. 아니 모른다

	기존 언어  ----->  JAVA
	 ↳ 절차적         ↳ 객체지향적  

📌 객체지향 언어의 장점

  • 코드의 재사용성
  • 코드 관리 용이
  • 중복 코드 제거 가능

📌 객체지향 언어의 특징

1️⃣ 캡슐화 2️⃣ 상속 3️⃣ 추상화 4️⃣ 다형성


📖 클래스와 객체

➡︎ 클래스 : 객체를 정의해놓은 것 / 객체를 생성하는데 사용

➡︎ 객체 : 실제로 존재하는 것 (사물 또는 개념)

💡 비유하자면 ?

클래스객체
설계도제품
  • 객체의 구성요소 : 속성기능 ➡︎ 객체(인스턴스)의 멤버

  • 🤔객체와 인스턴스?
    객체는 모든 인스턴스를 대표하는 용어, 인스턴스는 특정 클래스로부터 생성된 객체
    고로 비슷한(거의 같은) 의미를 가졌다 !


📖 객체 (인스턴스)

💡 클래스로부터 인스턴스를 생성하는 방법

  ❶ 클래스명 변수명 ;  // 참조변수 선언임
    변수명 = new 클래스명(); // 객체를 생성 후 객체 주소를 변수에 저장한 것

🌟❷ 클래스명 변수명 = new 클래스명();

📌 객체 생성의 예시와 다이어그램

  • 예시 코드 ( 티비를 만들자~~)
Tv t; 
t = new Tv(); 
t.channel = 7;
t.power = true;
t.color = "white";

class Tv {
	Stirng color;
	boolean power;
	int channel;
 }

📌 객체 배열

  • 객체의 수가 많다면? => 배열을 이용하자!

  • 마찬가지로 객체가 바로 저장되는 것이 아니라 객체의 주소가 저장된다 (참조변수들의 참조변수)

  • 예시 코드

    • 위에 썼던 티비라는 객체를 여러개 만들어 배열을 생성한다 쳤을 때
    Tv[] tvArr = new Tv[3];

    • 이런식으로 참조변수 tvArr은 객체의 주소가 모여있는 참조변수를 참조하고
      첫 티비는 또 다른 위치의 변수들을 또 다시 참조하고,, 참조하고,,

📖 선언위치에 따른 변수의 종류

1️⃣ 인스턴스 변수 (iv)

  • 객체를 생성할 때 만들어진다
    ➡︎ 인스턴스 생성 후에 사용가능
  • 인스턴스마다 별도의 저장공간이 있으므로 전부 다른 값을 가질 수 있다
    • 포커 카드의 숫자, 무늬 같은 개별 속성

2️⃣ static 변수 (cv)

  • 인스턴스 변수 앞에 static을 붙이면 된다!
  • 공통된 변수(저장공간)을 공유하게 된다
    ➡︎ 인스턴스마다 공통적인 속성에 적용하기
  • 인스턴스를 생성하지 않고도 사용가능
    • 포커 카드의 뒷면 무늬, 카드의 폭 높이 등 공통적인 속성

3️⃣ 지역 변수 (lv)

  • 메서드 안에서만 사용가능, 블럭을 벗어나면 사용할 수 없다
변수의 종류선언위치생성시기
인스턴스 변수클래스 영역인스턴스가 생성될 때
static 변수클래스 영역클래스가 저장될 때
지역 변수메서드 영역변수 선언문이 실행될때

📖 메서드

0개의 댓글