클래스와 객체

윤주영·2024년 10월 22일

클래스의 정의 클래스란 객체를 정의해 놓은것
클래스의 용도 클래스는 객체를 생성하는데 사용

객체의 정의 실제로 존재하는것. 사물 또는 개념
객체의 용도 객체가 가지고 있는 기능과 속성에 따라 다름

클래스객체
제품 설계도제품
TV 설계도TV
붕어빵 기계붕어빵

객체지향개념
객체 = 속성(변수) + 기능(메서드)

객체와 인스턴스

객체: 모든 인스턴스를 대표하는 일반적 용어
인스턴스 : 특정 클래스로부터 생성된 객체(예:Tv인스턴스)

객체 = 인스턴스 같은 의미는 맞으나 보통 부를때는
인스턴스를 대표할때 객체라고 부르는거고
특정 클래스로부터 생성된 객체는 인스턴스라고 부른다고 합니다.
클래스는 설계도라고 생각하고 인스턴스는 제품이라고 생각하면 될것같다.

클래스와 객체

Q.클래스가 왜 필요한가? (설계도)
A.객체를 생성하기 위해 (제품)

Q.객체가 왜 필요한가? (제품)
A.객체를 사용하기 위해 (제품)

Q.객체를 사용한다는것은? (TV)
A.객체가 가진 속성과 기능을 사용하려고 (TV)
속성(변수), 기능(메서드)

한 파일 여러 클래스 작성하기

올바른 작성 예설명
Hello2.java
public class Hello2{}
class Hello3{}
public class가 있는 경우. 소스파일의 이름은 반드시 public class의 이름과 일치해야한다.
Hello2.java
class Hello2{}
class Hello3{}
public class가 하나도 없는 경우. 소스파일의 이름은 'Hello2.java' , 'Hello3.java' 둘 다 가능하다.
잘못된 작성 예설명
Hello2.java
public class Hello2{} public class Hello3{}
하나의 소스파일에 둘 이상의 public class가 존재하면 안된다. 각 클래스를 별도의 소스파일에 나눠서 저장하던가 아니면 둘 중의 한 클래스에 public을 붙이지 않아야한다.
Hello3.java
public class hello2{}
class Hello3{}
소스파일의 이름과 public class의 이름이 일치하지않는다. 대소문자를 구분하므로 대소문자까지 일치해야한다. 그래서 소스파일의 이름에서 'h'를 'H'로 바꿔야한다.

객체의 생성과 사용

1.객체의 생성

클래스명 변수명;     //클래스의 객체를 참조하기 위한 참조변수를 선언
변수명 = new 클래스명();     //클래스의 객체를 생성 후, 객체의 주소를 참조변수에 저장
Tv t;     //Tv클래스 타입의 참조변수 t를 선언
t = new Tv();    //Tv인스턴스를 생성한 후, 생성된 Tv인스턴스의 주소를 t에 저장
Tv t = new Tv();     // 이렇게 써도됨

2.객체의 사용

t.channel = 7;    //Tv인스턴스의 멤버변수 channel의 값을 7로 한다.
t.channelDown();     //Tv인스턴스의 메서드 channelDown()을 호출한다.
System.out.println("현재 채널은 " + t.channel + " 입니다.);

클래스(설계도)작성

1.클래스작성 (설계도)
2.객체생성 (제품)
3.객체사용 (제품사용)

profile
반갑습니다.

0개의 댓글