[UI5] 객체와 클래스

토마토·2024년 7월 14일

UI5

목록 보기
2/9
post-thumbnail

🌿 객체와 클래스

클래스(class)

객체를 만들기 위한 설계도
다양한 특성과 형태의 요소(변수, 상수, 메소드)를 내포하고 있는 것

객체(object)

클래스로부터 생성된 실체

인스턴스(Instance)

클래스로부터 생성된 구체적인 객체

객체와 인스턴스의 관계

일반적으로 객체와 인스턴스는 동의어로 사용됩니다. 의미를 구별해서 사용하는 경우, 객체는 해당 인스턴스보다 추상적인 개념으로 사용됩니다.

메소드(Method)

  • 클래스 안에서 특정 기능만을 수행하기 위한 로직의 단위 (하나의 기능단위)
  • class는 이름이 같은 method를 가질 수 있다
  • method 내에 있는 변수는 지역변수
  • 광역변수는 가장 상단에서 선언되어 어디서든 쓸 수 있음

🌿 Class 의 3대 속성

Class에는 상속성, 캡슐화, 다형성 3개의 속성이 있습니다.

상속성(Inheritance)

상속성은 한 클래스의 속성과 메소드를 다른 클래스에게 물려주는 것을 뜻합니다.

상속은 부모/상위 클래스에서 자식/하위클래스로 이루어집니다. 이때 상속받은 클래스의 속성과 메소드까지 모두 사용 가능하게 됩니다. 예를 들어, A class를 B class 가 상속 받았다면 B class는 A가 가진 모든 것을 사용할 수 있습니다. 한마디로 Class가 합집합이 되는 것을 의미합니다.

캡슐화(Encapsulation)

캡슐화는 객체의 속성과 메서드를 하나로 묶어 외부의 직접 접근으로부터 보호하는 것입니다. 객체의 메소드를 통해서 접근이 가능하므로 변경이 어렵고, 유지보수나 확장 시 오류를 줄일 수 있습니다.

다형성(Polymorphism)

하나의 객체가 여러 형태를 가지는 것을 의미합니다. 다형성은 코드의 길이를 짧게 유지하는데 도움이 됩니다. 대표적인 예로는 오버로드와 오버라이드가 있습니다.

오버로드(치환): 한 클래스 내에서 메서드의 이름은 같지만 매개변수가 다른 버전을 여러 개 정의하는 것
오버라이드(재정의): 상위 클래스에서 이미 정의된 메서드를 하위 클래스에서 동일한 이름, 매개변수로 다시 정의하는 것. 메소드의 이름은 동일한데 객체마다 다른 작업을 수행할 수 있음.

🌿 코드로 살펴보기

public class A {
	int a;
	float b;
	const c = 4;
	
	public Int sum(){
		int sum = 0;
		sum = 1 + 2 + 3 + c;
		return sum;
	} //하나의 클래스
	
	public void sum(){
		system.out.prinIn("HELLO JAVA");
	} //void는 return값이 없다는 뜻
	
	public subtract( int d){
		int sub = 0;
		sub = c - d;
		return sub;
	}//하나의 클래스
}
  • Class를 참조하는 변수를 Class 변수라 하는데, 이를 Instance 라고 부른다.
  • a는 A.class를 참조하는 Instance다
  • 특정 클래스를 대표하는게 Instance
var sum = 0;
let aa = new A(); 

sum = aa.sum();
  • A 클래스를 대신하는게 aa
  • new는 생성자로서 class가 생성될 때 필요한 초기값을 설정
  • new 나오면 클래스를 참조하는 변수가 등장
profile
멋쟁이 토마토

0개의 댓글