작성한 class를 사용하기 위해 객체로 만드는 과정
일반적으로 인스턴스화를 통해 객체를 생성하고, 변수에 저장 후 사용
public class HelloJava {
public static void main(String[] args) {
// Method Class 인스턴스화
Method Method = new Method();
// 이후 변수 Method를 이용하여 사용
System.out.println(Method.add(2, 3));
}
}
class Method {
public int add(int a, int b) {
return a + b;
}
}
// 예)
class While {
public String gender; // 인스턴스 변수
public static String name; // 클래스 변수
// 메소드
public void swimming() {
String swimm = "헤엄칩니다."; // 지역 변수
System.out.println(swimm);
}
}
// 메소드의 기본 형태
// 접근제어지시자 리턴타입 메소드명([파라미터1, 파라미터2...]) {
// 기능 작성
}
// 예)
public class HelloJava {
public static void main(String[] args) {
// 스태틱 메소드는 인스턴스 없이 사용 가능
System.out.println(Method.addStatic(5, 3));
// 인스턴스 메소드는 class의 인스턴스를 생성 후 사용 가능
Method Method = new Method();
System.out.println(Method.add(2, 3));
}
}
class Method {
// 스태틱 메소드
public static int addStatic(int a, int b) {
return a + b;
}
// 인스턴스 메소드
public int add(int a, int b) {
return a + b;
}
}
public class HelloJava {
public static void main(String[] args) {
int num1 = 5;
int num2 = 6;
// HelloJava.sum() 호출시 사용한 num1과 num2는 Argument
System.out.println(HelloJava.sum(num1, num2));
}
// HelloJava.sum() 정의에서 사용한 int a와 int b는 Parameter
public static int sum(int a, int b) {
return a + b;
}
}
class Method {
public int num1; // 어디에서나 접근 가능
protected int num2;// 클래스 내부 && 상속 관계에서 접근 가능
int num3; // 같은 패키지에 소속된 클래스에서 접근 가능
private int num4; // 클래스 내부에서만 접근 가능
public void method1() {
System.out.println("Public Method");
}
protected void method2() {
System.out.println("Protected Method");
}
void method3() {
System.out.println("Protected Method");
}
private void method4() {
System.out.println("Private Method");
}
}
// println 호출
System.out.println(1); // 파라미터가 정수 타입으로 메소드 호출
System.out.println(3.157); // 파라미터가 실수 타입으로 메소드 호출
System.out.println("안녕"); // 파라미터가 문자열 타입으로 메소드 호출
System.out.println(true); // 파라미터가 논리 타입으로 메소드 호출
// println 메소드 정의
public static void println() { ... }
public static void println(boolean x) { ... }
public static void println(char x) { ... }
public static void println(char[] x) { ... }
public static void println(double x) { ... }
public static void println(float x) { ... }
public static void println(int x) { ... }
public static void println(long x) { ... }
public static void println(Object x) { ... }
public static void println(String x) { ... }
class Test {
// 기본 생성자
public Test() {}
}
class Test {
public int age;
// 파라미터가 있는 생성자
public Test(int age) {
this.age = age; // 파라미터 age를 필드 age에 저장
}
}
class Drone {
public int hp; // 체력
public int damage; // 공격력
public int armor; // 방어력
public Drone() {
// 기본 생성자의 경우, 고정값으로 `Drone(int hp, int damage, int armor)`생성자 호출
this(40, 5, 0);
}
public Drone(int hp, int armor) {
// hp와 armor는 파라마터 값으로, damage는 고정 값으로 `Drone(int hp, int damage, int armor)`생성자 호출
this(hp, 5, armor);
}
public Drone(int hp, int damage, int armor) {
// 파라미터로 넘겨 받은 값으로 필드 초기화
this.hp = hp;
this.damage = damage;
this.armor = armor;
}
}