this
- 현재 객체의 참조값
- 현재 객체의 멤버(필드, 메소드)를 호출할 때 사용
- 생성자 내부에서 다른 생성자를 호출할 때 this() 형태로 사용
Student 클래스 생성 (메인메소드 없음)
// 필드 private String stuNo; // this.stuNo private String name; // this.name // 생성자 public Student() { } public Student(String stuNo, String name) { this.stuNo = stuNo; this.name = name; } // 메소드 public String getStuNo() { return stuNo; } public void setStuNo(String stuNo) { this.stuNo = stuNo; } public String getName() { return name; } public void setName(String name) { this.name = name;
- 이클립스 -> 메뉴 Source -> Generate Getters and Setters 클릭 -> 메소드 자동 생성
School 클래스 생성 (메인메소드 없음)
// 필드 private Student[] students; private int idx; // students 배열의 인덱스. students 배열에 저장된 학생 수와 같다. // 생성자 public School(int cnt) { students = new Student[cnt]; } // 메소드 public void addStrudent(Student student) { if(idx == students.length) { System.out.println("Full"); return; } students[idx++] = student; } // for문 public void printStudents() { for(int i = 0; i < idx; i++) { System.out.println(students[i].getName() + ", " + students[i].getStuNo()); } } // 향상for문 for(Student student : students) { if(student != null) { System.out.println(student.getName() + ", " + student.getStuNo()); } }
SchoolMain 클래스 생성 (메인메소드 생성)
Student student = new Student(); student.setStuNo("11025"); student.setName("전지현"); Student student2 = new Student("11026", "정우성"); School school = new school(2); school.printStudents(); school.addStrudent(student1); school.addStrudent(student2); school.addStrudent(student1);
출력:
Full
전지현, 11025
정우성, 11026