this
자기 자신에 메모리 주소를 참조
생성자 다른 생성자를 호출할 수 있다,
자신의 주소(참조값)을 반환
메모리
1. Method Area (static)
2. Stack
3. Heap
도전 문제
회사에 사원이 입사할때 마다 새로운 사번이 필요한 경우
package basic.ch12;
public class Company {
// 공통으로 참조하고 싶다. (static)
// 어디든지 접근하게 한다 (public)
public static String companyName = "그린컴퍼니";
static int empSerialNumber = 1000;
}
package basic.ch12;
public class Employee {
// 멤버 변수 (객체 마다 고유에 값을 가져야 한다.)
private int employeeId;
private String name;
private String department;
//요구 조건
// 사원이 존재하게 될 때 마다 고유한 사원 번호를 할당하고 싶다.
// 단 사원 번호는 중복 되어서는 안된다.
// static 과 멤버 변수에 활용
// 객체 생성자, 멤버변수, 함수를 필요하다면 호출 또는 초기화 할 수 있다.
public Employee(String name) {
this.name = name;
this.employeeId = Company.empSerialNumber;
Company.empSerialNumber++;
} // 생성자
public int getEmployeeId() {
return employeeId;
}
public void setEmployeeId(int employeeId) {
this.employeeId = employeeId;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDepartment() {
return department;
}
public void setDepartment(String department) {
this.department = department;
}
}
-------------------------------------------------------------------------------------
package basic.ch12;
public class Company {
// 공통으로 참조하고 싶다. (static)
// 어디든지 접근하게 한다 (public)
public static String companyName = "그린컴퍼니";
static int empSerialNumber = 1000;
// 코드 테스트
public static void main(String[] args) {
Employee employee1 = new Employee("홍길동");
System.out.println(employee1.getEmployeeId());
Employee employee2 = new Employee("이순신");
System.out.println(employee1.getEmployeeId());
Employee employee3 = new Employee("이순신");
System.out.println(employee1.getEmployeeId());
}
}
// 문제 : 카드 번호가 발급될 때 마다 고유한 카드 번호를 가질 수 있도록 코드 설계
class Card 안에 main 까지 해서 실행
package basic.ch12;
public class Card {
// 문제 : 카드 번호가 발급 될때마다
// 문제 : 고유한 카드 번호를 가질 수 있도록 코드 설계해 주세요.
//-----------------------------------------------------------
// 멤버 변수, static 변수
private String name; // 이름
private static int cardnumber; // 카드 번호
// 멤버 함수
public Card(String name) {
this.name = name;
cardnumber = 1;
} // 생성자
// getter
public String getName() {
System.out.println("이름 : " + name);
return name;
}
// setter
public void setName(String name) {
this.name = name;
}
// getter
public int getCardNumber() {
System.out.println("카드번호 : " + cardnumber);
return cardnumber;
}
// setter
public void setCardNumber(int cardnumber) {
this.cardnumber = cardnumber;
}
// 메서드
public void printwaitNumber() {
getCardNumber();
Card.cardnumber++;
}
// 코드 테스트 (메인 함수)
public static void main(String[] args) {
Card card1 = new Card("홍길동");
Card card2 = new Card("이순신");
Card card3 = new Card("User1");
card1.getName();
card1.printwaitNumber();
card2.getName();
card2.printwaitNumber();
card3.getName();
card3.printwaitNumber();
} // end of main
} // end of class
'Java' 카테고리의 다른 글
| 2024.04.22 배열에 대해서 알아 보자 (0) | 2024.04.22 |
|---|---|
| 2024.04.19 static 메소드(함수) (0) | 2024.04.19 |
| 2024.04.18 static 변수 (0) | 2024.04.18 |
| 2024.04.18 ver 0.0.1 Starcraft (0) | 2024.04.18 |
| 2024.04.18 this 3가지 사용 방법 (0) | 2024.04.18 |