new = 객체의 데이터가 저장될 메모리공간을 할당해 주기위해 사용되는 연산자이다.
오버로딩이란?
★하나의 클래스 내에★ 인수의 개수나 형이 다른 동일한 이름의 메소드및 생성자를 여러 개
정의하는것.
오버로딩 - Method 오버로딩
- Constructor 오버로딩
------------------Method 오버로딩--------------------
ex ) setDate(년,월,일)
setDate(월,일)
ex ) public void plus (int a, int b){
System.out.println(a+b);
}
public void plus (int a, int b, int c){
System.out.println(a+b+c);
}
파라미터의 개수, 형에 따라서..
static이 붙어있으면 객체를 생성안하고 부를수있음.
class명.메소드명
-----------------Constructor 오버로딩-----------------
오버로딩은 생성자를 이용하여 객체를 생성시에도
적용 가능함.
public class Mp3 {
public String color = "";
public int price = 0;
public Mp3(){
} <---------default 생성자
public Mp3(String param1, int param2){
this.color=param1;
this.price=param2;
}
public static void main(String args [] ){
Mp3 mp3_1 = new Mp3();
Mp3 mp3_2 = new Mp3("red",10000);
}
-------------------------------------------------
this란 특정 객체 내에서 현재 객체 자신을 의미하는 참조 변수이다.
this는 자기자신 클래스를 가르킴 ==> ThisTest
this를 쓰는 이유는 명확하게 하기위해서.
this.a = a;
멤버변수a에┘ └피라미터 a를 넣어라.
------------------------------------------------
this() 란?
"현재 객체내의 생성자를 의미한다."
반드시 생성자의 첫 행에 정의해야한다. (다음행에는 무엇이오든 상관없음)
장점 : this()를 이용하여 한 클래스 내의 특정생성자에서
오버로딩되어있는 다른 생성자를 호출 할 수 있다.
public class ThisConstr{
public ThisConstr(){
this("");
} //②default 생성자 호출후
오버로딩된 또 다른 생성자호출.
""<-이것은 문자열을 의미하므로
String형 생성자를 호출한다.
public ThisConstr(String a){
System.out.println("ThisConstr(String a)생성자 호출");
} // ③String형 생성자가 호출되어 Sysout된 내용을 출력.
public ThisConstr(int a){
System.out.println("ThisConstr(int a)생성자 호출");
}
public static void main(String args [] ) {
ThisConstr con = new ThisConstr(); //①ThisConstr클래스에 con이란
} 객체를 생성하면서 파라미터값이
} 없으므로 default 생성자를 호출함.
this(); ==> 자기자신 생성자를 호출함.
그러나 의미가 없다.
계속 자기자신만 호출하는것이므로.
this(""); ==> 이런식으로
다른 생성자를 호출하는거임.
----------------------------------------------------------------------
파라미터를 이용하여 실행시 arguments를 입력 받을수있다.
Run -> Run Configurations -> Arguments -> Program arguments 에 입력.
띄어쓰기를 기준으로 각 Index에 저장됨.
[Java 실행시 Arguments 입력하여 실행방법]
java (클래스명) (인수1) (인수2) (인수3)···
ex)
C:> javac Test.java
C:> java Test red color blue
----------------------------------------------------------------------
입력후 정렬 하는 습관!
Ctrl + Shift + f
작성후 저장하는 습관!
Ctrl + s
----------------------------------------------------------------------
default 생성자(default constructor)
default 생성자는 인자도 없고 내용도 없는 생성자인데,
객체가 생성 될 때 반드시 생성자가 호출되어야 하므로, 클래스에 생성자가
하나도 선언되어있지 않으면 컴파일러가 default 생성자를 자동을 생성한다.
하지만, 생성자가 하나라도 존재하는 클래스에는
자동으로 기본 생성자가 삽입되지 않는다.
---------------------------------------------------------------------
용어!
argument - 인수
unsign - 부호가없는
parse - 분석하다
radix - 진법
api = documentation