Cute Running Puppy

Language/[Java] 자바 완전 정복

2주차_06. 클래스와 객체

R.silver 2022. 1. 27. 19:52
반응형

클래스의 구조

class 클래스명 {
...
} //클래스명은 대문자로 적기!

 

//클래스 밖에 올 수 있는 것들
package ...;
import ...;
class 클래스명 {...};

//클래스 안에 올 수 있는 것들 
public class 클래스명 { //클래스명은 파일명과 동일해야 함
	int a;               // 필드
    double b();          // 메서드
    a() {...}            // 생성자
    class 클래스명 {...} // 이너 클래스 
}

 

클래스의 외부 구성요소

패키지

임포트

다른 패키지의 클래스를 사용하고 싶을 때 사용하는 요소

외부 클래스

클래스 외부에 또 다른 클래스가 포함될 수 있다

1개의 .java 파일에 여러 개의 클래스가 포함될 수 있다. 

단, 외부 클래스는 public 키워드를 사용할 수 없다. 

클래스의 내부 구성요소 

필드

클래스의 특징을 나타내는 것 

객체의 고유 데이터, 상태 정보 등을 저장하는 곳 

필드를 변수라고 부르지 않는다. 

생성자와 메소드 전체에서 사용되며 객체가 소멸되지 않는 한 객체와 함께 존재함 

생성자

클래스의 객체를 생성하는 역할 

new 연산자로 호출되는 중괄호 블록 

객체 생성 시 초기화 담당 

메소드와 비슷하게 생겼지만 클래스 이름으로 되어있고 리턴 타입이 없음

메소드

클래스가 가진 기능 (함수)

객체의 동작에 해당하는 중괄호 블록  

객체 간의 데이터를 전달하는 수단 

이너 클래스

클래스 내부에 포함된 클래스 

인스턴스화

클래스 생성자로 객체를 만드는 과정 

인스턴스화로 만들어진 객체 == 인스턴스

 

클래스는 바로 사용할 수 없고
반드시 객체를 생성해 객체 안에 있는 필드, 메서드 및 이너 클래스를 사용해야 한다. 

 

객체의 생성과 활용 

객체 생성하기 

클래스명 참조_변수명 = new 생성자();

 

A a = new A();
//A() 생성자로 만든 객체를 힙 메모리에 넣고, 위칫값을 A 타입 참조 변수 A에 저장

 

객체 활용하기 

포인터 연산자 

해당 위치에 있는 객체 안을 보라는 의미 

 

참조_변수명.필드명;

참조_변수명.메서드명();

 

A a = new A();
System.out.println(a.m); //a 클래스 안의 m 
a.print(); //a 클래스 안의 print() 메서드

 

 

반응형