JAVA

JAVA 클래스와 객체

어떠한 광고 없이 [Do it! 자바 프로그래밍 입문 - 저자 박은종] 책을 보고 간단하게 기록을 남기기 위해서 글을 적었습니다.

 


클래스란?

     객체의 속성과 기능을 코드로 구현 한 것.

     Ex)

         학생 = 객체

         속성 = 학번, 이름, 학년, 사는 곳 (멤버 변수 = 속성 = 특성)

package Chapter5;

public class Student {

	int studentID; //멤버 변수
	String studentName; //멤버 변수
	int grade; //멤버 변수
	String address; //멤버 변수
	
    public void showStudentInfo(){ // 멤버 함수(메서드)
    	System.out.println(StudentName+","+address);
    }
    
    public String getStudentName(){
    	return studentName; //getter()
    }
    public void setStudentName(String name){
    	studentName=name; //setter()
    }
}

JAVA 이름 짓는 규칙

               자바에서 클래스 이름은 대문자로 작성 (일종의 규칙, Coding Convention)

               패키지는 모두 소문자로 만든다.

               변수와 메서드의 이름은 소문자로 시작, 카멜(Camel)체 활용

패키지란

               클래스 파일의 묶음

               패키지 생성 시 프로젝트 하위에 물리적으로 디렉토리 생성된다.(계층 구조)

               클래스 이름이 같아도 패키지 이름이 다르면, 다른 클래스가 된다.

함수호출과 스택 메모리

               함수를 호출 시 함수만을 위한 메모리 공간이 할당된다. 이 메모리 공간을 Stack이라고 부른다.

               함수 내부에서 사용되는 지역변수 또한 Stack 메모리에 잡힌다.

 

프로그램을 시작하는 main()함수

                main() 함수는 JVM이 프로그램을 시작하는 시작하기 위해 호출하는 함수이다.

 

JAVA에서 클래스를 생성할 때는 new 예약어를 사용하고, 생성자를 써준다.

                클래스가 생성된다는 것은, 클래스를 실제로 사용할 수 있게끔 메모리 공간을 할당 받는다는 뜻이다.

                               클래스형 변수이름 = new 생성자;

 

객체, 클래스, 인스턴스

                객체를 코드로 구현한 것이 '클래스', 클래스가 메모리 공간에 생성된 상태를 '인스턴스'라고 한다.

                클래스로 생성된 인스턴스는 힙 메모리에 생성된다. (힙=동적 메모리 공간)

                자바에서는 GC가 자동으로 메모리를 해제해 준다.

 

참조 변수 사용하기

                참조 변수 사용하면 인스턴스의 멤버 변수와 메소드를 참조하여 사용할 수 있다. (도트 연산자 활용)

                               참조변수.멤버변수

                               참조변수.메서드()

생성자

                디폴트 생성자: 자바 컴파일러에서 자동으로 생성자를 만들어 줌, 매개변수 없으며 구현 코드 없음

                (생성자가 하나도 없는 경우만 디폴트 생성자를 제공한다.)

                생성자는 주로 멤버 변수에 대한 값들을 매개 변수로 받아서 인스턴스가 생성될 때, 멤버 변수를 초기화 해주는 역할