1. 배열
- 같은 타입의 여러 변수를 하나의 묶음으로 다루는 것을 배열이라고 한다. 많은 양의 데이터를 저장하고 이를 다루기 위해 사용한다.
- 여기서 중요한 것은 같은 타입이어야 한다는 것이며 서로 다른 타입의 변수들로 구성된 배열은 만들 수 없다.
1) 배열 선언
자료형[] 변수 = {데이터1, 데이터2, 데이터3.....};
ex)
int[] myArray = {1, 33, 4, 12, 89, 98};
String[] names = {"James", "Anthony", "Rodrigo", "Nirai"};
2) 배열 출력
System.out.println(변수명[인덱스 번호]);
** 인덱스 번호는 맨 첫번째자리부터 0으로 시작해 순차적으로 매겨진다.
ex)
System.out.println(myArray[2]);
System.out.println(names[3]);
------------------------------------------------
4
Nirai
2. 실습예제
Exercise) 3개의 클래스를 생성해 직원관리 프로그램을 만드세요
Solution)
Employee.java
package com.example.learnjava;
public class Employee {
private String firstName;
private String lastName;
private int idNumber;
private String department;
private String position;
private double monthlySalary;
public Employee(String firstName, String lastName, int idNumber, String department, String position, double monthlySalary) {
this.firstName = firstName;
this.lastName = lastName;
this.idNumber = idNumber;
this.department = department;
this.position = position;
this.monthlySalary = monthlySalary;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public int getIdNumber() {
return idNumber;
}
public void setIdNumber(int idNumber) {
this.idNumber = idNumber;
}
public String getDepartment() {
return department;
}
public void setDepartment(String department) {
this.department = department;
}
public String getPosition() {
return position;
}
public void setPosition(String position) {
this.position = position;
}
public double getMonthlySalary() {
return monthlySalary;
}
public void setMonthlySalary(double monthlySalary) {
this.monthlySalary = monthlySalary;
}
}
- 먼저 사원들의 정보가 들어갈 필드를 생성해줍니다.
- 그 다음 생성자를 만들어 각 필드의 값들을 초기화 시킵니다.
- private으로 접근제한을 설정하였기 때문에 다른클래스에서 수정을 위해 getter/setter를 추가합니다.
Employer.java
package com.example.learnjava;
public class Employer {
private String name;
private String location;
public Employer(String name, String location) {
this.name = name;
this.location = location;
}
public Employer() {
}
public void employeeDetails(Employee employee) {
System.out.println("ID: " + employee.getIdNumber() + " Name: " + employee.getFirstName() +
" " + employee.getLastName() + " Department: " + employee.getDepartment() +
" Position: " + employee.getPosition() + " Monthly Salary: " + employee.getMonthlySalary());
}
public void calculateAnnualBonus(Employee employee) {
double annualBonus = (employee.getMonthlySalary() * 0.15) * 11;
System.out.println("Annual bonus for " + employee.getFirstName() +
" is " + annualBonus);
}
}
- 고용주(사장)의 정보가 들어갈 필드를 생성해줍니다.
- Employer의 빈 생성자를 만듭니다.
- 사원들의 정보를 출력하기 위한 메소드인 employeeDetails 메소드를 만듭니다.
- 사원들의 연간보너스를 출력하기 위한 calculateAnnualBonus 메소드를 만듭니다.
MyClass.java
package com.example.learnjava;
public class MyClass {
public static void main(String[] args) {
Employer bank = new Employer();
Employee Jenna = new Employee("Jenna", "Lassoft", 324587, "HR",
"Recruiter", 4500.89);
Employee Lance = new Employee("Lance", "K.", 3245377, "IT",
"IT/Support", 3800.59);
bank.calculateAnnualBonus(Jenna);
bank.calculateAnnualBonus(Lance);
bank.employeeDetails(Lance);
}
}
- bank 객체를 Employer 클래스를 이용해 만듭니다.
- Employee 클래스에서 Jenna, Lance 객체를 만들어 정보들을 삽입합니다.
- bank.메소드명으로 원하는 메소드를 불러와 정보를 출력합니다.
3. 키 값
- 자바에서 키 값을 사용할때에는 HashMap이라는 함수를 이용한다.
- HashMap은 Map 인터페이스를 구현한 함수다. Collection Framework에 속해있다.
- 키(key)와 값(Value)으로 구성된 객체를 저장한다. 키는 중복을 허용하지 않으며 값은 중복 저장이 가능하다. 같은 키가 새롭게 저장되면 이전에 있던 키-값은 사라진다.
HashMap 사용방법은 다음과 같다.
HashMap<데이터 타입> 참조변수명 = new HashMap<>();
put(key, value)
ex)
package com.example.learnjava;
import java.util.HashMap;
public class JavaHashMaps {
public static void main(String[] args) {
HashMap<String, Integer>gameStats = new HashMap<>();
gameStats.put("James", 100);
gameStats.put("Ruth", 457);
gameStats.put("Carolina", 679);