객체 지향

#class #인스턴스 #인스턴스 멤버 #인스턴스 변수 #객체지향 프로그래밍
Dec 18, 2023
객체 지향
 
  • class → 객체를 찍어내는 틀 (설계도)
  • 인스턴스 - 클래스로부터 만들어지는 각 객체들
  • 인스턴스 멤버 - 객체마다 별도로 멤버 소유
  • 인스턴스 변수 - 동일한 클래스를 이용하여 객체들을 생성할 때 각각의 객체(인스턴스)들은 자신만의 필드를 가지며 이 필드는 인스턴스마다 별도로 생성
  • 정적 멤버(=클래스 멤버) → 필드 정의 시 앞에 static 입력, 객체들이 하나의 멤버를 다른 객체와 공유
  • 클래스 하나에 하나씩 생성되는 변수, 동일한 클래스로 생성된 모든 객체들은 하나의 정적 변수 공유, 객체 없이도 사용 가능, 사용 시 클래스명 뒤에 연산자( . ) 입력
 
<절차 지향 프로그램 ⇒ procedure: 절차 → 프로시저(=함수)의 집합>
 
  • 객체 지향 프로그램(OOP)
    • 객체 = 객체의 상태와 객체의 동작을 가짐.
      모든 것을 부품화시켜서 결합, 각 메서드 재사용 가능
💡
객체지향 제1원칙 ⇒ 상태는 행위를 통해서 변경한다
class Person4{ //상태 = 변수 private int weight = 100; //행위 = 메서드 exercise=>메서드명 public void exercise(){ } }
상태 = 변수 / 행위 = 메서드 exercise=>메서드명
class Person4{ int weight = 100; public void exercise(){ weight = weight - 10; } } public class OOPEx02 { public static void main(String[] args) { Person4 p4 = new Person4(); System.out.println("p4의 몸무게: " + p4.weight); p4.exercise(); System.out.println("p4의 몸무게: " + p4.weight); } }
private를 없애야 접근가능해서 출력할 수 있음 static이 없어서 new를 통해 띄워줌
class Person4{ //상태 = 변수 private int weight = 100; public int getWeight(){ return weight; } //행위 = 메서드 exercise=>메서드명 public int exercise(){ weight = weight - 10; return 0; } } public class OOPEx02 { public static void main(String[] args) { Person4 p4 = new Person4(); for (int i = 0; i < 10; i++) { p4.exercise(); System.out.println("p4의 몸무게: " + p4.getWeight()); } } }
private를 붙이고 확인, 변경가능하게 메서드를 통해서 간접적으로 private에 접근
💡
private → 다른 클래스에서 접근 불가 → 내부 데이터 훼손 우려 X
public → 어디에서든지 접근 가능
 
  • 객체 지향 프로그래밍
    • 캡슐화 : 함수(메서드)와 데이터를 묶어서 정리
      캡슐화 : 함수(메서드)와 데이터를 묶어서 정리
       
Share article

from-web-developer