1. Method
- 자바에서 특정 작업을 수행하기 위한 명령문
- 다른 언어에서는 "함수" 와 같은 것
* Method 사용 목적
- 중복되는 코드 반복을 줄여줌 => 재사용성에 용이
- 모듈화를 통해 코드의 가독성이 좋아짐
- 유지보수에 용이하다.
2. Constructor (생성자)
: 생성자는 개체가 생성될 때 개체를 초기화하며, 클래스와 이름이 같고 문법적으로 메소드와 유사함
- 그러나 생성자에는 return 없다!! (즉 리턴 타입을 지정할 수 없다)
- 일반적으로 생성자를 사용하여 클래스에서 정의한 인스턴스 변수에 초기 값을 제공하거나 완전히 구성된 개체를 만드는 데 필요한 다른 시작 절차를 수행
- Java는 모든 멤버 변수를 0으로 초기화하는 기본 생성자를 자동으로 제공
- 생성자의 이름은 반드시 클래스 이름과 동일하게 작성해야 한다.
- 생성자는 new 를 통해 객체를 생성할 때 한번만 호출
- 생성자는 여러개 작성(오버로딩) 할 수 있다
* 오버로딩의 정의는 자바의 한 클래스 내에 이미 사용하려는 이름과 같은 이름을 가진 메소드가 있더라도 매개변수의 개수 또는 타입이 다르면, 같은 이름을 사용해서 메소드를 정의할 수 있다. <-> 오버라이딩은 부모 클래스로부터 상속받은 메소드를 자식 클래스에서 재정의하는 것을 오버라이딩이라고 한다. 상속받은 메소드를 그대로 사용할 수도 있지만, 자식 클래스에서 상황에 맞게 변경해야하는 경우 오버라이딩할 필요가 생긴다.
- 선언 방법
클래스 이름(){...} // 매개변수가 없는 생성자 선언
클래스 이름(인수1, 인수2, ...){...} //매개변수가 있는 생성자 선언
*예시
Public class MyClass {
Int num;
MyClass() {
num = 100;
}
}
// A simple constructor.
class MyClass {
int x;
// Following is the constructor
MyClass(int i ) {
x = i;
}
}
- 생성자를 호출함으로 초기화
public class ConsDemo {
public static void main(String args[]) {
MyClass t1 = new MyClass( 10 );
MyClass t2 = new MyClass( 20 );
System.out.println(t1.x + " " + t2.x);
}
}
* 예시 (생성자)
package method;
public class Member {
private String id;
private String name;
private int age;
//생성자가 여러개 존재 가능합니다.
//이름이 같을수 밖에 없어요 // 이름이 똑같을 수 없다 //매개변수로 구분 할 수 있음 (변수 이름은 의미 없음)
// 생성자 Overloading: 한 메소드에서 파생되어 이름은 같지만 매개변수의 개수 또는 유형이 다르게 구분짓는 것
public Member() { //제일 많이 사용
}
//생성자
public Member(String id) { //id 만 초기화, 나머지는 디폴트 초기화
this.id=id; //this 생성자
}
public Member(String id, String name) { //동일한 매게변수 2개로 가능
this(id); // 생성자 내부에서만 사용이 가능함 //위에서 초기화 해주었기에 // 두번째 라인엔 올 수 없음
//this(id)는 생성자 내부 첫 줄에마서만 호출 가능함.
this.name=name;
}
public Member(int age, String id, String name) { // 각 다른 매개 변수와 함께 가능 -> 오버로딩
this(id, name);
this.age=age;
} // 제일 많이 사용 2
// Method overloading:
//get필드명(): getter
public String getId() {
return id;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
//set필드명(): setter
//우회하여 객체 정보 갖고 오기
public void setId(String id) {
this.id=id;
}
public void setName(String name) {
this.name=name;
}
public void setAge(int age) {
this.age=age;
}
}
* 예시(Method 호출)
package method;
public class MethodTest06 {
public static void main(String[] args) {
Member m=new Member();
m.setId("greed1");
m.setName("노그린");
m.setAge(3);
String id=m.getId();
System.out.println("id= "+id);
String name=m.getName();
System.out.println("name= "+name);
int age=m.getAge();
System.out.println("age= "+age);
}
}
* 예시 (메소드 오버로딩)
package overload;
public class Calc {
//메소드 오버로딩
public int plus(int num1, int num2) { //정수형
return num1 + num2;
}
public long plus(long num1, long num2) { //실수형
return num1 + num2;
}
public int plus(short num1, short num2) { //실수형
return num1 + num2;
}
public double plus(double num1, double num2) { //실수형
return num1 + num2;
}
public static void println(String msg) {
System.out.println(msg);
}
public static void println(int num) {
System.out.println(num);
}
public static void println(double num) {
System.out.println(num);
}
////////////////////////////////////////////////////////////////////////////////
public static void main(String[] args) {
Calc cal=new Calc();
System.out.println("정수 + 정수 : "+ cal.plus(10, 20)); //30
System.out.println("실수 + 실수 : "+ cal.plus(2.5, 3.2)); //5.7
System.out.println();
Calc.println("안녕하세요.");
cal.println("반갑습니다.");
}
}//c
'JAVA _기초' 카테고리의 다른 글
[JAVA] JAVA 의 DATA TYPE (0) | 2023.02.15 |
---|---|
[JAVA] 프로그래밍 개발 관련 용어 정리 (0) | 2023.02.15 |
[JAVA] Class, 객체, 인스턴스 (0) | 2023.02.15 |
[JAVA] 메서드 Method란? 그리고 생성 및 호출 (0) | 2023.02.14 |
[JAVA] Switch & Case & Scanner 를 사용한 간단한 은행 시스템 (0) | 2023.02.14 |