728x90
<번호표>
package ch08;
public class NumberPrinter {
private int id;
private static int waitNumber = 1; // 선언과 동시에 초기화
public NumberPrinter(int id) {
this.id = id;
}
// 번호표를 출력 합니다.
public void printWaitNumber() {
System.out.println(id + "대기 순번은" + waitNumber);
waitNumber++;
}
} // end of class
package ch08;
public class NumberPrinterMainTest {
public static void main(String[] args) {
NumberPrinter numberPrinter1 = new NumberPrinter(1);
NumberPrinter numberPrinter2 = new NumberPrinter(2);
numberPrinter1.printWaitNumber();
numberPrinter1.printWaitNumber();
numberPrinter1.printWaitNumber();
numberPrinter1.printWaitNumber();
numberPrinter1.printWaitNumber();
numberPrinter1.printWaitNumber();
numberPrinter1.printWaitNumber();
numberPrinter2.printWaitNumber();
numberPrinter2.printWaitNumber();
numberPrinter2.printWaitNumber();
numberPrinter2.printWaitNumber();
} // end of main
} // end of class
1대기 순번은1
1대기 순번은2
1대기 순번은3
1대기 순번은4
1대기 순번은5
1대기 순번은6
1대기 순번은7
2대기 순번은8
2대기 순번은9
2대기 순번은10
2대기 순번은11
<사원>
package ch08;
public class Employee {
// 잠시 공간을 빌려서 코드를 작성한다
private static int serialNum = 1000;
private int employeeId;
private String employeeName;
private String department;
public Employee(String employeeName) {
this.employeeName = employeeName;
this.employeeId = serialNum;
serialNum++;
}
public int getEmployeeId() {
return employeeId;
}
public void setEmployeeId(int employeeId) {
this.employeeId = employeeId;
}
public String getEmployeeName() {
return employeeName;
}
public void setEmployeeName(String employeeName) {
this.employeeName = employeeName;
}
public String getDepartment() {
return department;
}
public void setDepartment(String department) {
this.department = department;
}
// serialNum 상태값을 반환하는 기능을 만들어 보자.
public static int getSerialNum() {
// 고민 ! - 객체가 메모리에 올라간 상태
// serialNum++;
// static 메서드 안에서는 멤버 변수를 사용할 수 없다.
// department = "개발부서";
return serialNum;
}
// 1. 멤버 변수
// 2. 지역 변수
// 3. static 변수
// 결론 : 어느 메모리 위치에 있느냐에 따라 이름을 구분지어 말할 수 있다.
} // end of class
package ch08;
public class EmployeeMainTest {
public static void main(String[] args) {
// static은 먼저 메모리에 올라가는 녀석이다.
// 클래스 이름으로 접근할 수 있다.
// int number = Employee.serialNum;
// System.out.println(number);
//만약 객체가 생성되기 전에 serialNum 값을 알고 싶다면?
System.out.println(Employee.getSerialNum());
Employee employeeKim = new Employee("김길동");
Employee employeeLee = new Employee("이순신");
Employee employee티모 = new Employee("티모");
System.out.println(employeeKim.getEmployeeId());
System.out.println(employeeLee.getEmployeeId());
System.out.println(employee티모.getEmployeeId());
// 외부에서 static 변수에 접근해서 값을 변경할 수 있는 상태이다.
// Employee.serialNum = 100;
} // end of main
} // end of class
1000
1000
1001
1002
<학번>
package ch08;
public class SchoolNumber {
private String name;
private static int studentNumber = 20230001;
public SchoolNumber(String name) {
this.name = name;
}
// 학번 출력
public void PrintSchoolNumber() {
System.out.println(name + "의 학번은" + studentNumber + "입니다.");
studentNumber++;
}
} // end of class
package ch08;
public class SchoolNumberMainTest {
public static void main(String[] args) {
SchoolNumber schoolNumberSong = new SchoolNumber("송");
SchoolNumber schoolNumberSin = new SchoolNumber("신");
SchoolNumber schoolNumberKim = new SchoolNumber("김");
SchoolNumber schoolNumberLee = new SchoolNumber("이");
SchoolNumber schoolNumberPark = new SchoolNumber("박");
schoolNumberSong.PrintSchoolNumber();
schoolNumberSin.PrintSchoolNumber();
schoolNumberKim.PrintSchoolNumber();
schoolNumberLee.PrintSchoolNumber();
schoolNumberPark.PrintSchoolNumber();
} // end of main
} // end of class
송의 학번은20230001입니다.
신의 학번은20230002입니다.
김의 학번은20230003입니다.
이의 학번은20230004입니다.
박의 학번은20230005입니다.
<계산기>
package com.tencoding.starcraft;
public class Calculator {
// 멤버 변수
int sum = 0;
// 두 정수를 더하는 static 메서드 만들기
public static int add(int a, int b) {
// 멤버 변수를 활용할 수 없는 이유는 뭘까?
// sum = a+ b;
return a + b;
}
// 두 정수를 빼는 static 메서드
public static int subtract(int a, int b) {
return a - b;
}
// 두 정수를 곱하는 static 메서드
public static int muliply(int a, int b) {
return a * b;
}
// 두 정수를 나누는 static 메서드
public static int divide(int a, int b) {
if (b == 0) {
System.out.println("ERROR : Division by zero is not allowed.");
return 0;
}
return a / b;
}
// 잠시 자리를 빌려서 static 함수를 작성할 수 있다.
public static void main(String[] args) {
}
} // end of class
package com.tencoding.starcraft;
public class CalculatorMainTest {
public static void main(String[] args) {
// 과제 - Calculator를 인스턴스화 시키지 말고
// 동작들을 실행시켜서 확인해 보세요
// 단 클래스 이름으로 접근해주세요
int result1 = Calculator.add(2, 2);
System.out.println(result1);
int result2 = Calculator.muliply(4, 3);
System.out.println(result2);
int result3 = Calculator.divide(10, 0);
System.out.println(result3);
} // end of main
} // end of class
4
12
ERROR : Division by zero is not allowed.
0
728x90
'Example' 카테고리의 다른 글
[E-Java] This 예시 (30) | 2024.02.23 |
---|---|
[E-Java] 연산자 예시 (23) | 2024.02.23 |
[E-Java] 싱글톤 패턴 예시 (20) | 2024.02.23 |
[E-JS] 반복문, 조건문, 배열 연습 (0) | 2023.08.18 |
[E-HTML&CSS] 애니메이션 예시 (22) | 2023.08.16 |