[Java] 클래스, 인스턴스, 객체 (2)
- 메소드
public static void sum(int left, int right) {
System.out.println(left+right);
}
위의 코드를 보면, sum이라는 메소드는 static이라는 키워드를 달게 되면, sum은 클래스 소속의 메소드가 된다.
public class CalculatorDemo3 {
public static void main(String[] args) {
Calculator3.sum(10, 20);
Calculator3.avg(10, 20);
Calculator3.sum(20, 40);
Calculator3.avg(20, 40);
}
}
static이 붙어있는 클래스 메소드는 static이 붙어있지 않은 메소드와 다르게 클래스에 접근하여 직접적으로 실행할 수 있다.
위의 코드를 보면, Calculator3라는 클래스에 직접적으로 접근하여 sum이 실행된다.
이는 메모리와 코드를 절약할 수 있게 도와준다.
- 클래스, 인스턴스 메소드 1) 인스턴스 메소드는 클래스 멤버에 접근할 수 있다.
2) 클래스 메소드는 인스턴스 멤버에 접근할 수 없다. 위 두 가지 사항을 기억하자. 아래 코드 예제를 통해 자세히 알아보자.class C1{ static int static_variable = 1; //static이 붙어있으므로 클래스 변수 int instance_variable = 2; // static이 없으므로 인스턴스 변수 static void static_static(){ // 클래스 메소드가 클래스 변수를 호출하고 있을때 System.out.println(static_variable); } static void static_instance(){ //static 클래스 메소드가 인스턴스 변수에 접근하는 경우에 어떻게 될것인가. // 클래스 메소드에서는 인스턴스 변수에 접근 할 수 없다. //System.out.println(instance_variable); } void instance_static(){ // 인스턴스 메소드에서는 클래스 변수에 접근 할 수 있다. System.out.println(static_variable); } void instance_instance(){ System.out.println(instance_variable); } }
마지막 용어정리를 하자면,
인스턴스 변수는 Non-static Field라고 하고,
클래스 변수는 Static Field라고 한다.
Author And Source
이 문제에 관하여([Java] 클래스, 인스턴스, 객체 (2)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@enoch0403/Java-클래스-인스턴스-객체-2저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)