[java] 클래스와 객체 1~3

seokki kwon·2022년 10월 4일
0

클래스와 객체 중간정리

package classpart;

public class Student {
		// 멤버변수들
		int studentID;
		String studentName;
		int grade;
		String address;
		
        // 생성자
		public Student(int id, String name) {
			studentID = id;
			studentName=name;
		}
		// 메서드
		public void showStudentInfor() {
			System.out.println(studentName + ',' + address);
		}
		
		public String getStudentName() {
			return studentName;
		}
	                                
		public void setStudentName(String name) {
			studentName = name;
		}
		
		//JVM이 불러준다 
		public static void main(String[] args) {
		
			
		}
}

접근제어자

public void static main(String[] args) => 클래스 내부에서 메인으로 실행시킬 수 있다.

public void setName(String name) {studentName=name} => 이름을 매개변수로 받아서 멤버변수를 바꿔준다(반환값 없음)

public String getName() { return studentName } => 이름값을 반환하는 메서드이다

생성자

package classpart;

public class StudentTest {
	
	public static void main(String[] args) {
		Student studentPark = new Student(1, "park");
		studentPark.address="seoul";
		studentPark.grade=3;
	
		
		Student studentKwon = new Student(2, "kwon");
		studentKwon.address="youngin";
		studentKwon.grade=6;
	
		
		studentKim.showStudentInfor();
		studentKwon.showStudentInfor();

		
	} 
}

생성자를 이용하여 객체를 생성한다
생성자로 생성된 객체는 참조변수이며 Heap 에 저장되어있는 주소값을 가르킨다.

패키지 내에서 클래스 사용

같은 패키지 내부에서는 클래스를 사용하는데 서로 제약이 없다고 한다
Student 클래스를 StudentText.java 에서 사용가능한 이유기도하다.

생성자 오버로딩

생성자는 생성을 한적이 없는데 어떻게 new 연산자를 이용하여
생성을 할 수 있는것일까?

자바컴파일러가 실행을 하면서 자동으로 해당 클래스 생성자를 생성하게된다

생성자 오버로딩이란 생성자를 우리가 커스텀 할수 있다고 생각하면 쉽다

package classpart;

public class Student {
		int studentID;
		String studentName;
		int grade;
		String address;
		
		// 초기에 매개변수를 정해주는 생성
		public Student(int id, String name) {
			studentID = id;
			studentName=name;
		}
		// 기본생성자
		public Student() {
		
		}
		
		public void showStudentInfor() {
			System.out.println(studentName + ',' + address);
		}
		
		public String getStudentName() {
			return studentName;
		}
	                                
		public void setStudentName(String name) {
			studentName = name;
		}
		
		//JVM이 불러준다 
		public static void main(String[] args) {
		
			
		}
}



Student 클래스 파일에 해당 형식으로 생성자를 만들수 있다
인수를 정해주지 않는 경우도 미리 정의를 해두었기에 컴파일 에러가 나지 않는다.

public static viod main... 부분은 사실 실행을 하거나 돌려보기 위함이며
실제로 코드를 작성할때 클래스 내부보단 다른 클래스에서 끌어와서 사용하는 경우가 흔하다는걸 기억하자.

profile
웹 & 앱개발 기록

0개의 댓글