클래스 정의하고 생성자를 이용해 인스턴트멤버 초기화하기

sehwa!·2023년 9월 1일
0

Java

목록 보기
7/18

📌 접근제어자
1. private : 같은 클래스 내에서만 접근가능
2. default : 같은 패키지 내에서만 접근가능 (기본값으로 따로 붙이지 않는다.)
3. protected : 같은 패키지와 다른 패키지의 상속관계에서 접근가능
4. public : 프로젝트 내에서 모두 접근가능
클래스는 default와 public 접근제어자만 지정가능

✅ 수업예문

💻 code

public class Student

private String name;
private int age;
📍 생성자 오버로딩
public Student() {}
public Student(String name) {
this.name = name;
}
public Student(String name, int age) {
this.name = name;
this.age = age;
}
📍 setter and getter
public void setName(String name) {
	this.name = name;
}
public String getName() {
	return name;
}
public void setAge(int age) {
	this.age = age;
}
public int getAge() {
	return age;
}

public class StudentUseExam main메소드

Student s1 = new Student();
Student s2 = new Student("이순신");
Student s3 = new Student("홍길동", 17);
System.out.printf("1번째 학생 이름 : %s, 나이 : %d\n", s1.getName(), s1.getAge());
System.out.printf("2번째 학생 이름 : %s, 나이 : %d\n", s2.getName(), s2.getAge());
System.out.printf("3번째 학생 이름 : %s, 나이 : %d\n", s3.getName(), s3.getAge());

👉 print

1번째 학생 이름 : null, 나이 : 0
2번째 학생 이름 : 이순신, 나이 : 0
3번째 학생 이름 : 홍길동, 나이 : 33

🚫 point

초기화 하지 않은 값은 null, 0으로 출력됨
setter를 이용해 값을 넣어줄 수 있음
EX)
s1.setName("임꺽정");
s1.setAge(22);

📃 실습 01

1. 클래스 정의하고 사용하기

💻 code

public class Product

private String name;
private int price;
private String maker;
private String memo;
📍 setter and getter
public String getName() {
	return name;
}
public void setName(String name) {
	this.name = name;
}
public int getPrice() {
	return price;
}
public void setPrice(int price) {
	this.price = price;
}
public String getMaker() {
	return maker;
}
public void setMaker(String maker) {
	this.maker = maker;
}
public String getMemo() {
	return memo;
}
public void setMemo(String memo) {
	this.memo = memo;
}
📍 오버로딩
Object 클래스를 상속받기 때문에 toString()을 오버로딩할 수 있다.
public String toString() {
	return name + "(" + price + "), 제조사 : " + maker + ", 상품설명 : " +memo;
}

public class ProductPrint main 메소드

Product[] pd = new Product[3];
pd[0] = new Product();
pd[0].setName("아메리카노 1+1");
pd[0].setPrice(2990);
pd[0].setMaker("스타벅스");
pd[0].setMemo("스타벅스 오리지날 아메리카노 커피 1+1");
pd[1] = new Product();
pd[1].setName("뉴그랜저");
pd[1].setPrice(32500000);
pd[1].setMaker("현대자동차");
pd[1].setMemo("3000cc 동급 최강 승용차");	
pd[2] = new Product();
pd[2].setName("데스크탑5");
pd[2].setPrice(799000);
pd[2].setMaker("삼성전자");
pd[2].setMemo("CUP 6코어 i5 10400F 4.3GH");
System.out.println("###상품 리스트###");
for(int i =0; i < pd.length; i++) {
	System.out.println(pd[i]);
}

👉 print

###상품 리스트###
아메리카노 1+1(2990), 제조사 : 스타벅스, 상품설명 : 스타벅스 오리지날 아메리카노 커피 1+1
뉴그랜저(32500000), 제조사 : 현대자동차, 상품설명 : 3000cc 동급 최강 승용차
데스크탑5(799000), 제조사 : 삼성전자, 상품설명 : CUP 6코어 i5 10400F 4.3GH

📃 실습 02

1. 클래스 정의하고 생성자 추가하여 인스턴트 생성하기

💻 code

public class Member

	private String name;
	private int age;
	private String id;
	private String pass;
	private String gender;
	private String adress;
📍 setter and getter
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getPass() {
		return pass;
	}
	public void setPass(String pass) {
		this.pass = pass;
	}
	public String getGender() {
		return gender;
	}
	public void setGender(String gender) {
		this.gender = gender;
	}
	public String getAdress() {
		return adress;
	}
	public void setAdress(String adress) {
		this.adress = adress;
	}
📍 생성자 만들기
	public Member(String name, int age) {
		this(name, age, null, null, null, null);
	}
	public Member(String name, int age, String id, String pass) {
		this(name, age, id, pass, null, null);
	}
	public Member(String name, int age, String id, String pass, String gender, String adress) {
		this.name = name;
		this.age = age;
		this.id = id;
		this.pass = pass;
		this.gender = gender;
		this.adress = adress;
	}
📍 toString() 오버라이딩
public String toString() {
	return "이름 : " + name + ", 나이 : " + age + ", 아이디 : " + id + ", 비밀번호 : " + pass +
		", 성별 : " + gender + ", 주소 : " + adress;
}

public class MemberPrint main메소드

Member m1 = new Member("홍길동", 25);
m1.setId("hong");
m1.setPass("1234");
m1.setGender("남성");
m1.setAdress("서울시 구로구 구로동 1번지");
Member m2 = new Member("이순신", 30, "leesunshin", "4321");
m2.setGender("남성");
m2.setAdress("서울 강서구 화곡동 3번지");
Member m3 = new Member("유관순", 35, "midas", "1111", "여성", "경기도 부천시 오정구 고강동");
System.out.println(m1);
System.out.println(m2);
System.out.println(m3);

set 사용해서 인스턴트에 값 넣기

👉 print

이름 : 홍길동, 나이 : 25, 아이디 : hong, 비밀번호 : 1234, 성별 : 남성, 주소 : 서울시 구로구 구로동 1번지
이름 : 이순신, 나이 : 30, 아이디 : leesunshin, 비밀번호 : 4321, 성별 : 남성, 주소 : 서울 강서구 화곡동 3번지
이름 : 유관순, 나이 : 35, 아이디 : midas, 비밀번호 : 1111, 성별 : 여성, 주소 : 경기도 부천시 오정구 고강동

0개의 댓글