🦁아기사자

[Java] 클래스 (class)

코딩하는 하마 2025. 3. 18. 22:45

클래스 

1) 클래스란? 

객체 지향 프로그래밍에서 객체를 생성하려면 설계도에 해당하는 부분인 클래스가 필요

인스턴스 : 클래스로부터 생성된 객체

인스턴스화 : 클래스로부터 객체를 만드는 과정

클래스 구성 멤버 : 필드 , 생성자 , 메소드 

 

2) 클래스 선언 방법

클래스명 작성 : 첫 문자를 대문자로 함 , 캐멀 스타일로 작성

public class 클래스명 { }

 

ex) 

public class SportCar{ }
clas Tire { }

 

 


객체

1) 객체란?

객체 : 필드와 메소드로 구성되어있는 것

 

2) new 연산자를 사용하여 객체 생성하기

new 클래스()
클래스 변수 = new 클래스();

 

위 그림과 같이 stack 영역의 클래스 변수가 heap 영역의 객체를 참조함을 볼 수 있다.

 

ex)

public class Student{
	public static void main(String[] args) {
    	Student s1 = new Student();
        System.out.println("s1 변수가 Student 객체를 참조한다.");
        }
 }

 

 


메소드

1) 메소드란?

메소드 (함수): 객체가 수행할 동작 , 객체와 객체 간의 상호작용을 위해 호출됨

 

2) 메소드 선언

[접근 제한자 (public , private , protected , default)] (static)  리턴타입 메소드명 (매개변수) { }

 

[리턴 타입] 

- void : 리턴 값이 없음 

- double : 리턴 값이 double형이여야 함

- int : 리턴 값이 int 형이여야 함

그 외 ( char ...)

 

[매개변수]

메소드를 호출할 때 전달한 매개값을 받기 위해 사용

받을 매개변수가 없다면 ()로 생략 가능 

 

ex)

public class Calculator {
	public static void powerOn() {      }
    public void powerOff() {    }
    public double divide(int x, int y ) { .... return double형; }
 }

 


생성자

1) 생성자란?

생성자 : new 연산자로 객체를 생성할 때 객체의 초기화 역할을 담당 , 모든 클래스는 생성자를 가지고 있음

              -> 선언 형태는 메소드와 비슷 but 리턴 타입이 없고 이름은 클래스 이름과 동일

기본 생성자 : 클래스에 생성자 선언이 없으면 컴파일러가 기본적으로 바이트코드 파일에 기본 생성자를 추가함

매개변수 생성자 : 객체를 다양하게 초기화하기 위해 사용함

 

2) 생성자 생성 및 호출

- 기본 생성자

//생성자 선언
[public] 클래스() { }

//생성자 호출
클래스명 클래스 변수 = new 클래스명();

 

ex) 

class Car {
	public Car() { }
 }

public class CarExample {
	public static void main(String[] args) {
    	Car car = new Car();
        }
}

 

- 매개변수가 있는 생성자

//생성자 선언
클래스 ( 매개변수,...) { }

//생성자 호출
클래스명 클래스 변수 = new 클래스명 (매개값들..);

 

ex)

class Car {
	String name;
    int price;
    
    public Car(String name , int price) {
    	this.name = name;
        this.price = price;
    }
}

public class CarTest {
    public static void main(String[] args) {
    	Car c = new Car("소나타",50000000);
    }
}

 


this 키워드

- 자기 자신의 메모리를 가르키는 역할

- 생성자에서 다른 생성자를 호출하는 역할

- 인스턴스가 자기 자신의 주소를 반환하는 역할

 

ex)

public class Car {
	String name;
    int price;
    
    public Car(String name , int price) {
    	this.name = name ;
        this.price = price;
    }
    
}

'🦁아기사자' 카테고리의 다른 글

[Java] Enum  (0) 2025.03.26
[Java] 멀티스레드 프로그래밍  (0) 2025.03.25
[Java] 인터페이스  (0) 2025.03.20
[Java] 패키지  (0) 2025.03.19
[Java] 상속  (0) 2025.03.18