JAVA(Sol)(정리대기중..언젠가)
210419_7~8 (생성자오버로딩)
너굴셉
2021. 4. 19. 17:32
생성자 일반
1. 클래스안에 생성자가 여러개 정의되어있으면 그것은 생성자 오버로딩이라고 말한다.
오버로딩(overload과부화) : 동일 클래스 내에서 같은 이름의 함수를 인자의 갯수와 형을 달리하면서
여러번 정의 하는것. 즉, 같은이름의 함수로 여러가지 일을 처리할수있도록 하는것.
----------------------------
classA {
add(int i) { }
add(int i, int j){ }
add(int i, float j) { }
}
-----------------------------
2. 생성자는 인스턴스를 생성하는데 관여하므로 생성자가 여러개있다라는 것은
결국 인스턴스를 생성하는 방법이 여러개라는 뜻이다.
----------------------------클래스 변수
주로 상수를 만들때 많이 사용한다. 초기값을 가지고있다.
static int age = 99;
상수키워드 final <== 값을 변경할수없다.
-----------------------------클래스static 메서드
주로 빠른 처리(응답)를 요구하는 메서드는 static을 붙인다.
또는 별다른 기능없이 스탬프처럼 출력하는 메서드에서 사용한다.
Integer. it = new Integer()
it.parseInt("") <== 시간도 더 걸리고 불편하다
ex) Integer.parseInt("10000);
package chapter9;
class ScjpPass {
int t1 = 0;
int t2 = 0;
int t3 = 0;
int t4 = 0;
static int BONUS = 100; // class변수
public ScjpPass() { //기본생성자
}
// 생성자 오버로딩
public ScjpPass(int t1, int t2, int t3, int t4) {
this.t1 = t1;
this.t2 = t2;
this.t3 = t3;
this.t4 = t4;
}
}
public class Scjp {
public static void main(String[] args) {
System.out.println("ScjpPass.BONUS" + ScjpPass.BONUS);
ScjpPass sp = new ScjpPass(85, 90, 80, 70);
System.out.println("sp.t1:" + sp.t1);
System.out.println("sp.t2:" + sp.t2);
System.out.println("sp.t3:" + sp.t3);
System.out.println("sp.t4:" + sp.t4);
}
}
package chapter9;
class SCWCD {
int t1 = 0;
int t2 = 0;
int t3 = 0;
int t4 = 0;
static int BONUS = 100;
public SCWCD() {
}
public SCWCD(int t1, int t2, int t3, int t4) {
this.t1 = t1;
this.t2 = t2;
this.t3 = t3;
this.t4 = t4;
}
public String pass() {
String msg = null;
if (t1 >= 65 && t2 >= 65 && t3 >= 65 && t4 >= 65) {
msg = "축하합니다. 합격입니다.";
} else {
msg = "미안합니다. 불합격입니다.";
}
return msg;
}
public static void prLine() {// static 메서드 =>주로 빠른처리를 요구할때
System.out.println("***************");
System.out.println(" STUDY ");
System.out.println(" JAVA ");
System.out.println("***************");
}
} // class
public class SCWCDmain {
public static void main(String[] args) {
SCWCD sc = new SCWCD(100, 80, 70, 80);
System.out.println(sc.pass());
SCWCD.prLine();
// 축하합니다. 합격입니다 라고 출력되도록 코딩하세요
}
}