프로그래밍

[자바 기초] day06 : 클래스 본문

자바/자바 기초

[자바 기초] day06 : 클래스

시케 2023. 5. 10. 17:25
728x90
반응형

2023.05.10.수

클래스

클래스는 자바의 기본 단위의 객체이다

클래스는 객체이므로 상태와 동작을 갖는다

 

상태: 멤버변수, 필드, 속성
동작(기능): 멤버함수, 메서드

 

클래스는 C의 구조체와 같다

 

생각보다 우리는 의식하지 않고 클래스를 매우 많이 사용하였는데

다음의 예를 보면 알 수 있다

public class Test01 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

	}

}

자바의 기본 단위이기 때문에 임의로 생성되는 것이다

 

임의로 생성되는 것이 아닌 사용자가 생성할 수도 있다

class 선언

class 클래스명 {

          멤버 변수;

 

          멤버 함수(){

          }

}

class Student {// 클래스명은 주로 대문자
	//멤버변수
	String name;
	int score;

	//멤버함수
	void hello() {
    	// 멤버변수는 선언없이 사용해도 오류가 안난다
		System.out.println("안녕, 난 " + name + "(이)야.");
	}

}

class 사용

public class Test01 {

	public static void main(String[] args) {
    	
		// String, Random, Scanner 모두 클래스의 일종
		String a = "apple";
		String b = "apple";
		String c = "apple";
        
		Random rand = new Random();
		Scanner sc = new Scanner();
    	
		// 클래스 객체 = new 생성자();
		Student student1 = new Student();
		Student student2 = new Student();
		Student student3 = new Student();

		// 전부 다르게 나오며 new를 통해 힙메모리에 있어 주소값이 출력됨
		System.out.println(student1);
		System.out.println(student2);
		System.out.println(student3);

		// . 멤버 접근 연산자
		student1.name = "홍길동";
		student1.score = 97;
		student2.name = "티모";
		student2.score = 13;
		student3.name = "아리";
		student3.score = 56;

		student1.hello();
		student2.hello();
		student3.hello();
	}

}

 

출력

class04.Student@548b7f67

class04.Student@7ac7a4e4

class04.Student@6d78f375

안녕, 난 홍길동(이)야.

안녕, 난 티모(이)야.

안녕, 난 아리(이)야.

 

클래스는 자료형, 객체는 변수라 생각하면 된다
즉, 내가 student 라는 자료형을 만든것이다

 

※ 파란색으로 내가 만든 멤버변수와 함수가 표시되는 것을 알 수 있다

 

클래스로부터 객체 생성시 new 생성자()가 반드시 필요하며 
이것을 객체화(인스턴스화)라고 한다
※ 즉, 인스턴스는 'new'해서 나온것

 

주소값이 나온 이유

 

728x90
반응형
Comments