JAVA/Bootcamp 자바

생성자/ 메서드 오버로딩?

whyHbr 2024. 2. 22. 19:43
728x90
반응형

생성자?

클래스로 객체를 만들 때 한 번 호출되는 메소드

 

메소드?

객체가 가진 기능/ 객체가 하는 행위, 동작

기본 형태 :

접근제한자(=접근제어자) / 반환타입/ 메소드명(매개변수){

}

 

접근제어자 public : 프로젝트 전체에서 사용 가능

<-> private : 가장 가까운 중괄호 안에서만 사용

Protected : 소규모 범위로만

(Default) : 특정 범위로만

 

 

클래스 구성요소: 필드 (= 멤버변수, 객체의 속성, 정보 역할을 담당하는 변수), 생성자, 메서드(=멤버변수)

자바에서 메서드는 클래스 안에서만 쓸 수 있다.

파이썬에서는 함수를 클래스 안(메서드)에서도 선언할 수 있고 클래스 밖(함수)에서도 선언할 수 있다.

 

자바는 클래스로 구성되어 있음 (클래스뿐..)

객체 == 클래스

클래스는 필드. 생성자, 메서드로 구성되어 있다.

코드(객체 생성, 객체의 메서드 호출 , if, for)

메서드(기능동작행위실행)에 클래스 생성

 

오버로딩?

public class Person { //접근제한자로 public, default 만 가능
    //필드
    String name ="han";
    int age;

    public Person(){
        //기본생성자
        //오버로딩은 생성자부터 시작됐다.
    }
    //생성자: 객체를 생성할 때 한 번 호출하는 특별한 메소드
    // -무조건 이름이 클래스와 같아야 함
    // -반환타입이 없어
    public Person(String n){//객체를 생성하는 기능
       name = n;
    }
    //오버로딩
    //메소드

    //오버라이딩

    //자바에서 메소드는 클래스 안에서만 선언할 수 있다
    public void eat(){
        System.out.println("eateat");
    }


}

 

오버로딩은, 

매개변수의 수, 타입이 다르면 같은 이름으로 메소드 정의가 가능하다는 것이다.

public Person() {}; , public Person (String name){}   <-- 이렇

 

 

728x90