본문 바로가기
👩‍💻 BackEnd/☕️ 자바 [Java]

[JAVA] 오버로딩 / 패키지

by minhe2810 2023. 4. 15.

메소드 오버로딩 

 

: 매개 변수의 유형과 개수가 다르게 하여 같은 이름의 메소드를 여러개 가질 수 있게 하는 기술 
  • 메소드 오버로딩은 매개변수 부분이 달라야한다. 
  • 변수명은 다르지만, 매개변수 타입과 개수가 동일한 메소드를 정의할 수 없다.
  • 예를 들면, 매개변수 부분이 (Int x, int y) 와 (int i, int j) 를 매개변수로 갖는 메소드 두개는 정의할 수 없다.
(int x, int y) (String x, String y)를 매개변수로 갖는 메소드 두개는 정의 가능 
  • 변수 타입이 서로 다르기 때문
 
따라서
  1. 매개변수의 수는 같지만 타입이 다르면 ok
  2. 매개변수의 타입은 같지만 수가 다르면 ok
  3. 매개변수의 이름이 서로 다르다고 해서 오류가 나지는 않고, 반드시 타입이 달라야함.
 
 
생성자 오버로딩과 this
 
생성자 오버로딩
 
: 메소드와 마찬가지로 매개변수의 수와 타입이 다르다면 여러개의 생성자를 선언할 수 있음.
 
생성자의 매개변수의 유형과 개수가 다르게 하여 같은 이름의 생성자를 여러개 가질 수 있음.
 
  • 생성자도 메소드와 마찬가지로 여러 개 선언이 가능.
  • 매개변수의 수와 타입이 다르다면 여러 개의 생성자를 선언할 수 있음.
public class Car {
	String name;
	int number;
    
    public Car(){
    
    }
     public Car(String name){
    	this.name = name;
    }
    public Car(String name, int number){
    	this.name = name;
        this.number = number;
    }
 }

오버로딩된 생성자 이용하기 

public class CarExam4{
	public static void main (String args[]){
    	Car c1 = new Car();
        Car c2 = new Car("소방차");
        Car c3 = new Car("구급차", 119);
    }   
}

자기 생성자를 호출하는 this()

  • 매개변수를 주지 않은 생성자의 경우 기본 생성자 형태를 가짐. 이때 아래의 String, int 형태의 매개변수를 갖는 매개변수와 동일하게 입력값을 String, int로 받을 경우 아래에 있는 (자신이 갖고 있는 다른 생성자를 호출하여 사용할 수 있음!)
  • 생성자 형태를 보고 알맞은 타입의 생성자를 호출해낼 수 있음.

 

패키지 (package)
 
: 서로 관련있는 클래스 또는 인터페이스들을 묶어놓은 묶음.
: 패키지를 사용함으로써 클래스들이 필요할 때만 사용될 수 있도록 하고, 클래스를 패키지 이름과 함께 계층적인 형태로 사용함으로써 다른 그룹에 속한 클래스와 발생할 수 있는 클래스 이름간의 충돌을 막아줌으로써 클래스의 관리를 편하게 해줌. 
 
  • 패키지 이름은 대부분 도메인 이름을 거꾸로 적은 후 프로젝트 이름을 붙여 사용

예 ) 폴더명.폴더명.폴더명.클래스명 (com.eightcruz.javastudy)

  • 클래스 명에 ‘*’를 입력할 경우 패키지 안에있는 모든 클래스를 사용한다는 의미가 됨.
  • 패키지가 있는 클래스를 사용할 때는 import 사용해야함. (서로 다른 폴더에 생성했을 경우!)

Import 단축키 : cmd + shift + o

 

import 하는 이유는 컴파일러와 JVM에게 알려주는 것

'👩‍💻 BackEnd > ☕️ 자바 [Java]' 카테고리의 다른 글

[Java] 추상클래스  (0) 2023.04.17
[Java] 상속 / 접근제한자  (0) 2023.04.16
[JAVA] 참조변수 this.  (0) 2023.04.15
변수의 scope와 static  (0) 2023.04.14
[java 입문] 변수 / 상수 / 리터럴  (0) 2023.04.12