Java - 클래스 - 객체, 인스턴스 변수(=멤버 변수), 메소드

반응형

클래스 (Class)

  • 객체 지향 프로그래밍에서 특정 객체를 생성하기 위해 변수와 메소드를 정의하는 일종의 틀을 의미
  • 객체를 조금 더 효율적으로 생성하기 위해 만들어진 구문

객체 (Object)

  • 클래스에 정의된 내용대로 메모리에 생성된 것

객체 변수의 선언 및 생성(메모리 할당)

  • 객체 변수 선언 : 클래스명 객체명;
  • 객체 변수 생성 : 객체명 = new 클래스명();
  • 객체의 선언과 생성은 한 줄로도 표현 가능
public class Test {
	int a;
}

Test t; // 객체 변수 선언
t = new Test(); // 객체 변수 생성

Test t2 = new Test(); // 객체 변수 선언과 생성

인스턴스 변수 사용과 접근

  • 클래스에서 정의한 변수
  • 인스턴스 변수는 각각의 독립된 공간을 가짐
    • 예) Product p1 = new Product();
      -> p1에서 사용되는 변수는 같은 이름의 변수라도 독립된 공간을 가지기 때문에 출력되는 값이 다름

public class Product {
	int num;
    	String name;
    
	public static void main(String[] args) {
		Product p1 = new Product();
		p1.num = 1;
		p1.name = "computer";
		
		Product p2 = new Product();
		p2.num = 2;
		p2.name = "oven";

		System.out.println(p1.num+". "+p1.name);
		// 1. computer
	}        
}

메소드 (Method)

  • 클래스 내에서 정의된 함수
public class Hello {
	// Hello 클래스 내의 print 메소드 정의
	void print() {
    	System.out.print("HelloWorld!");
    }
}

메소드 호출

  • 객체 변수의 뒤에 점(.)을 하고 함수이름 입력
  • 메소드의 파라미터가 존재 할 경우, 파라미터의 수에 맞춰 호출
public class Hello {
	// Hello 클래스 내의 print 메소드 정의
	void print() {
    	System.out.print("HelloWorld!");
    }
    
	public static void main(String[] args) {
		Hello h = new Hello(); // Hello 클래스 객체화
		h.print(); // print 메소드 호출, 파라미터가 없기때문에 괄호 안은 공백
	}        
}
>>> HelloWorld!

 

반응형