Java

2024.04.19 static 으로 숫자를 중복사용 하지 않는 방법

정훈5 2024. 4. 19. 08:52

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