[JAVA] 생성자 / 오버로딩(overloading)

2023. 5. 17. 10:59·Java

1. 생성자 (Constructor)

  •  생성자 : 사용할 클래스의 변수를 미리 초기화해준다.
  • 매개변수, 구현부가 없다.
  • this.(필드명)  :  Car 클래스 내의 필드
default 생성자 : 클래스에 생성자를 구현하지 않아도 new 키워드로 생성자를 호출할 수 있음.
- 클래스에 생성자가 하나도 없어도 컴파일러가 default 생성자 코드를 넣어준다.
- public Car(){ };

 

class Car{	
	public String color;	
	public int speed;	
    
 //default 생성자
 	public Car(){}
    
 //생성자
	Car(String color, int speed){	
		this.color = color;	
		this.speed = speed;
	}
}

 

main에서 호출할 때

- 방법 1

public static void main(String[] args) {
		Car myCar1 = new Car("빨강",0);
		Car myCar2 = new Car("파랑",30);
	}

- 방법 2

public static void main(String[] args) {
	Car myCar1 = new Car();
	Car myCar2 = new Car();
	myCar1.color = "빨강";
	myCar1.speed = 0;
	myCar2.color = "파랑";
	myCar2.speed = 30;
	}

 

오버로딩(overloading) : 한 클래스 내에 같은 이름의 메서드를 여러 개 정의하는 것

(참고) 오버라이딩(overriding) : 부모클래스에서 정의한 메서드를 자식클래스에서 재정의 하는 것

2. 생성자 오버로딩

  • 생성자의 매개변수를 다르게 설정
  • 생성자를 호출할 때 여러 생성자 중 필요한 것을 호출해서 사용할 수 있음.
Car(){	
	}
	
Car(String color){	
	this.color = color;	
}
	
Car(String color, int speed){	
	this.color = color;	
	this.speed = speed;
}

3. 메서드 오버로딩

  • 같은 클래스 내에서 메서드의 이름이 같아도 파라미터의 개수나 데이터 형식만다르면 여러 개를 선언할 수 있는 것.
class Calc{

//double형 변수2개를 넣었을 때	
	void addValue(double v1,double v2) {	
		System.out.printf("double 값 계산 : %f ",(v1+v2));
	}									
//int형 변수2개를 넣었을 때  
	void addValue(int v1,int v2) {			//int형 변수2개	
		System.out.println("int 값 계산 : "+ (v1+v2));
	}
}

'Java' 카테고리의 다른 글

[JAVA] static과 final  (0) 2023.05.17
[JAVA] 접근 제어 지시자( private, protected, default, public) / 정보은닉, 캡슐화  (0) 2023.05.17
[Java] StringTokenizer  (0) 2023.05.04
[Java] Optional<T> 클래스  (0) 2023.05.03
[Java] String 클래스, 관련 메소드  (0) 2023.04.20
'Java' 카테고리의 다른 글
  • [JAVA] static과 final
  • [JAVA] 접근 제어 지시자( private, protected, default, public) / 정보은닉, 캡슐화
  • [Java] StringTokenizer
  • [Java] Optional<T> 클래스
HSRyuuu
HSRyuuu
Web Server Developer hsryuuu
  • HSRyuuu
    HS_dev_log
    HSRyuuu
  • 전체
    오늘
    어제
    • 전체 글 보기 (243) N
      • Spring (33) N
      • Infra & DevOps (17) N
      • Java (25)
      • Database (35)
      • Web & Network (14)
      • 자료구조 & 알고리즘 (30)
      • Computer Science (24)
      • Frontend (17)
        • Vue.js & Nuxt.js (9)
        • JSP_Thymeleaf (7)
      • etc (48)
        • 오픈소스 라이브러리 (5)
        • 코딩테스트 (13)
        • Trouble Shooting (7)
        • Tech Interview (6)
        • Book Review (9)
        • 끄적끄적... (6)
        • 개인 프로젝트 (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • github
  • 링크

  • 공지사항

    • Contact
    • GitHub
  • 인기 글

  • 태그

    MySQL
    백엔드스쿨
    클린코드
    Spring
    Nuxt3
    SpringBoot
    백엔드공부
    백준
    백엔드
    리눅스
    mybatis
    SQL
    기술면접
    JPA
    cleancode
    Linux
    Java
    TechInterview
    자료구조
    트랜잭션
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.4
HSRyuuu
[JAVA] 생성자 / 오버로딩(overloading)
상단으로

티스토리툴바