티스토리 뷰
반응형
1. 생성자
-- Student.java
1 2 3 4 5 6 7 | public class Student { String name; public void setName(String name) { this.name = name; } } | cs |
-- Stu1.java
1 2 3 4 5 6 | public class Stu1 extends Student { // Student 클래스를 상속 public void say() { System.out.println("Hi I'm " + this.name); } } | cs |
-- MasterStu.java
-- 생성자는 클래스명과 메서드명이 동일
-- 리턴타입을 정의하지 않음
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | public class MasterStu extends Stu1 { public MasterStu(String name) { // this.setName(name); } public void say() { System.out.println("I'm " + this.name + " Nice to meet"); } public void say(String state) { System.out.println(this.name + " is " + state + " Hungry.."); } public static void main(String[] args) { MasterStu mstu1 = new MasterStu("Aaron"); // 생성자 호출 시 문자열을 전달해야 함 System.out.println(mstu1.name); // Aaron } } |
2. default 생성자
-- Stu1.java
-- 클래스에 생성자가 하나도 없다면 컴파일러는 자동으로 default 생성자를 추가
-- 하지만 작성한 생성자가 하나라도 구현되어 있다면 default 생성자는 추가되지 않음
1 2 3 4 5 6 7 8 | public class Stu1 extends Student { public Stu1() { // default 생성자 } public void say() { System.out.println("Hi I'm " + this.name); } } | cs |
3. 생성자 오버로딩(overloading)
-- 하나의 클래스에 input이 다른 여러개의 생성자를 만들 수 있음
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | public class MasterStu extends Stu1 { public MasterStu(String name) { // String이 input인 생성자 this.setName(name); } public MasterStu(int grade) { // int가 input인 생성자 if (grade == 1) { this.setName("firstAaron"); } else if (grade ==2) { this.setName("secondAaron"); } } public void say() { System.out.println("I'm " + this.name + " Nice to meet"); } public void say(String state) { System.out.println(this.name + " is " + state + " Hungry.."); } public static void main(String[] args) { MasterStu mstu1 = new MasterStu("Aaron"); MasterStu mstu2 = new MasterStu(1); MasterStu mstu3 = new MasterStu(2); System.out.println(mstu1.name); // Aaron System.out.println(mstu2.name); // firstAaron System.out.println(mstu3.name); // secondAaron } } | cs |
.
--
--
--
--
반응형
'Web > JAVA' 카테고리의 다른 글
[JAVA] StringBuilder (0) | 2019.05.30 |
---|---|
[JAVA] 인터페이스(Interface) (0) | 2019.04.26 |
[Java] 상속(inheritance) ,오버라이딩(overriding), 오버로딩(overloading) (0) | 2019.04.22 |
[Java] 클래스(class), 메소드(Method), Call By Value (0) | 2019.04.21 |
[Java] 제어문 (if, switch/case, while, for, for each) (0) | 2019.04.18 |
댓글