클래스, 인스턴스와 객체
2021. 9. 15. 08:41ㆍJava
반응형
클래스
클래스는 연관되어 있는 변수와 메소드의 집합
Class 키워드 뒤에는 클래스 이름과 그 뒤의 중괄호는 클래스의 시작과 끝의 경계를 의미.
객체
프로그램의 작은 프로그램
package org.opentutorials.javatutorials.object;
class Calculator{
int left, right;
public void setOprands(int left, int right){
this.left = left;
this.right = right;
}
public void sum(){
System.out.println(this.left+this.right);
}
public void avg(){
System.out.println((this.left+this.right)/2);
}
}
public class CalculatorDemo4 {
public static void main(String[] args) {
Calculator c1 = new Calculator();
c1.setOprands(10, 20);
c1.sum();
c1.avg();
Calculator c2 = new Calculator();
c2.setOprands(20, 40);
c2.sum();
c2.avg();
}
}
Calculator이라는 클래스를 선언 → Calculator라는 객체의 설계도
new Calculator()은 클래스 Calculator를 구체적인 제품으로 만드는 명령어
클래스 == 설계도
인스턴스 == 제품
new를 이용해서 만든 인스턴스를 변수 c1에 담았는데 이유는 인스턴스를 제어하기 위해.
└ 클래스를 사용하기 위해선 일반적으로 인스턴스를 생성해서 사용
└ 하나의 클래스가 여러 개의 인스턴스가 될 수 있다 == 객체지향의 재활용성
c1 앞 데이터 타입 자리에 Calculaor는?
클래스를 인스턴스화 할 때 변수에 담아야 하고,
이 때 사용하는 변수의 데이터 타입은 그 클래스가 된다.
this.
this는 클래스를 통해서 만들어진 인스턴스 자신을 의미
매개 변수는 자신이 속하는 클래스 밖으로 접근 X
반면 메소드 밖에서 선언한 변수는 인스턴스 내의 모든 메소드에서 접근 가능.
반응형
'Java' 카테고리의 다른 글
오버라이딩, 오버로딩 (0) | 2021.09.23 |
---|---|
상속, super과 super() (0) | 2021.09.17 |
public static void main (String[] args) (0) | 2021.09.14 |
배열, 메소드 (0) | 2021.09.13 |
자바 입문 2 (0) | 2021.09.03 |