Method : Class의 기능을 하는 코드를 구현하는 부분
public class 클래스명 {
public void 메서드명(){
}
}
Class : Java의 모든 코드는 반드시 클래스 안에 존재
관련 코드를 나누어 별도의 클래스로 구성
public class 클래스명 {
}
Instance : 하나의 클래스를 복제해서 서로다른 데이터의 값과 서로같은 메소드를 가진 복제본을 만든 것
public class AccountingClassApp {
// instance는 하나의 클래스륵 복제해서 서로다른 데이터의 값과 서로 같은 메소드를 가진 복제본이다.
public static void main(String[] args) {
// instance
Accounting a1 = new Accounting(); // new를 사용하여 intance로 복제
a1.valueOfSupply = 10000.0;
a1.vatRate = 0.1;
a1.expenseRate = 0.3;
a1.print();
Accounting a2 = new Accounting(); // new를 사용하여 intance로 복제
a2.valueOfSupply = 20000.0;
a2.vatRate = 0.05;
a2.expenseRate = 0.2;
a2.print();
}
}
Class와 Instance의 차이
class Foo{
public static String classVar = "I class Var";
public String instanceVar = "I instance Var";
public static void classMethod() {
System.out.println(classVar);
// System.out.println(instanceVar); // 클래스 메소드 안에서는 인스턴스 변수에는 접근 불가
}
public void instanceMethod() {
System.out.println(classVar);
System.out.println(instanceVar);
}
}
public class StaticApp {
public static void main(String[] args) {
System.out.println(Foo.classVar); // 가능
// System.out.println(Foo.instanceVar); // 에러발생
Foo.classMethod();
// Foo.instanceMethod(); // 인스턴스 소속이기에 클래스를 통해 접근 불가
Foo f1 = new Foo();
Foo f2 = new Foo();
System.out.println(f1.classVar); // I class var
System.out.println(f1.instanceVar); // I instance var
f1.classVar = "changed by f1"; // classVar는 클래스이기때문에 변경됨
System.out.println(Foo.classVar); // changed by f1
System.out.println(f2.classVar); // changed by f1
f1.instanceVar = "changed by f1"; // instanceVar는 인스턴스 이기에 f2의 값은 변경되지 않고 f1의 값만 변경 됨
System.out.println(f1.instanceVar); // changed by f1
System.out.println(f2.instanceVar); // I instance var
}
}
해당 글은 Egoing님의 생활코딩을 참조하였으며, 다른 정보 습득 시 추후 변경 예정 될 수 있습니다.
'Develop > JAVA' 카테고리의 다른 글
JAVA - Instance Class 생성시 Constructor와 This (0) | 2022.06.15 |
---|---|
JAVA - Access Level Modifiers, static (0) | 2022.06.14 |
JAVA - Method에서의 return (0) | 2022.06.14 |
JAVA - 지역변수, 전역변수, 파라미터 (0) | 2022.06.13 |
JAVA - Arguments를 이용한 매개변수 넘기기 (0) | 2022.05.31 |