📌 접근제어자
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());
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]); }
###상품 리스트### 아메리카노 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 사용해서 인스턴트에 값 넣기
이름 : 홍길동, 나이 : 25, 아이디 : hong, 비밀번호 : 1234, 성별 : 남성, 주소 : 서울시 구로구 구로동 1번지 이름 : 이순신, 나이 : 30, 아이디 : leesunshin, 비밀번호 : 4321, 성별 : 남성, 주소 : 서울 강서구 화곡동 3번지 이름 : 유관순, 나이 : 35, 아이디 : midas, 비밀번호 : 1111, 성별 : 여성, 주소 : 경기도 부천시 오정구 고강동