작성 : 2024. 4. 12.
배열을 잘 못쓰는 것 같아서 수업 전에 예제를 찾아 간단하게 풀어봤다.
배열관련 예제
package practice;
public class ArraysPractice {
public static void main(String[] args) {
// 배열관련예제 01.
// 길이가 10인 배열을 선언하고
// 1부터 10까지의 값을 반복문을 이용하여 순서대로 배열 인덱스에 넣은 후 그 값을 출력하세요.
int[] arr = new int[10];
for (int i = 0; i < arr.length; i++) {
arr[i] = i + 1;
System.out.print(arr[i] + " ");
}
System.out.println();
// 배열관련예제 02.
// 길이가 10인 배열을 선언하고 1부터 10까지의 값을 반복문을 이용하여
// 역순으로 배열 인덱스에 넣은 후 그 값을 출력하세요.
int[] arr2 = new int[10];
int num = arr.length;
for (int i = 0; i < arr.length; i++) {
arr2[i] = num;
num--;
}
// 하나씩 차례대로 배열값에 수들을 넣어주는 코드
for (int i = 0; i < arr.length; i++) {
System.out.print(arr2[i] + " ");
}
}
}
학생성적 관리 시스템을 만들어보자
학생성적관리시스템
package etc0411;
public class ScoreData {
// 한 학생의 이름과 성적을 변수로 저장
String name;
int java;
int kor;
int eng;
int math;
public ScoreData(String name, int java, int kor, int eng, int math) {
super();
this.name = name;
this.java = java;
this.kor = kor;
this.eng = eng;
this.math = math;
}
void show() {
System.out.println("이름 : " + name );
System.out.println("자바 점수 : " + java + ", 국어 점수 : " + kor + ", 영어 점수 : " + eng + " , 수학 점수 : " + math);
}
}
package etc0411;
// 성적산출프로그램
import java.util.Scanner;
public class ScoreTest {
final int columns = 10;
final int rows = 6;
// 멤버 변수 만들기
// ScoreData 타입의 배열
static ScoreData[] scoreData = new ScoreData[10];
// 성적을 입력받아야 함.
static Scanner sc = new Scanner(System.in);
public static void main(String[] args) {
int menu;
while (true) {
// 단위테스트를 하고 넘어가야함.
showMenu();
System.out.println("메뉴 선택 : ");
menu = sc.nextInt();
// 입력받은 번호 비교
if (menu == 1) {
showAllScore();
} else if (menu == 2) {
registerScore();
} else if (menu == 3) {
searchScoreByName();
} else if (menu == 4) {
deletScoreByNum();
} else if (menu == 0) {
System.out.println("프로그램 종료");
break;
}
}
}
static void showMenu() {
// 전체 선택할 메뉴
System.out.println("--------------------------");
System.out.println("1. 전체 성적 조회");
System.out.println("2. 성적 등록");
System.out.println("3. 성적 검색");
System.out.println("4. 성적 삭제");
System.out.println("0. 종료");
System.out.println("--------------------------");
}
static void showAllScore() {
System.out.println("전체 성적 조회");
// if (scoreData.length == 0) {
// System.out.println("저장된 성적데이터가 없습니다.");
// return;
// }
-----------------------------------------------------------------------------
-> 강사님이 처음에 이렇게(주석 건 코드) 알려줬는데 해보니
"저장된 성적데이터가 없습니다." 메세지가 나오지 않음. 그래서 아래 코드로 내가 바꿔보았다.
for (int i = 0; i < scoreData.length; i++) {
if (scoreData[i] == null) {
System.out.println("저장된 성적데이터가 없습니다.");
return;
} else if (scoreData[i] != null) {
System.out.print((i + 1) + "번 - ");
scoreData[i].show();
}
}
}
-> 이렇게 하면 성적 데이터가 없을 때 "저장된 성적데이터가 없습니다." 메세지는 나오지만
성적 데이터가 있을 때도 나옴..
결국 강사님께 이 문제를 말씀드리고 함께 코드를 수정함.
-----------------------------------------------------------------------------
static void showAllScore() {
System.out.println("전체 성적 조회");
boolean flag = false;
for (int i = 0; i < scoreData.length; i++) {
if (scoreData[i] != null) {
flag = true;
System.out.print((i + 1) + "번 - ");
scoreData[i].show(); // null 체크를 반드시 해야 오류가 생기지 않음.
}
}
if (!flag) {
System.out.println("저장된 성적데이터가 없습니다.");
}
}
-> 수정된 코드. 잘 돌아감!
static void registerScore() {
System.out.println("성적 등록");
System.out.println("이름 : ");
String name = sc.next();
System.out.println("자바 : ");
int java = sc.nextInt();
System.out.println("국어 : ");
int kor = sc.nextInt();
System.out.println("영어 : ");
int eng = sc.nextInt();
System.out.println("수학 : ");
int math = sc.nextInt();
// new ScoreData(name, java, kor, eng, math);
for (int i = 0; i < 10; i++) {
if (scoreData[i] == null) {
scoreData[i] = new ScoreData(name, java, kor, eng, math);
System.out.println("등록 완료");
break;
}
}
}
// 학생 이름을 통해 성적을 찾아보겠다
static void searchScoreByName() {
System.out.println("성적 검색");
System.out.print("검색할 이름을 입력하세요 : ");
String name = sc.next(); // next 는 공백을 포함한 문자를 못받음. nextline 은 공백을 받을 수 있음
// 찾으면 찾았다고, 못찾으면 못찾았다고 판단
boolean found = false;
for (int i = 0; i < 10; i++) {
// 배열 안의 값이 널이 아니면서 이름이 같을 때
if (scoreData[i] != null && (scoreData[i].name).equals(name)) { // equals(name) 이름이 같은지 판단
System.out.println(name + "을(를) 찾았습니다.");
scoreData[i].show();
found = true;
break; // 찾았다면 반복문 끝내기
}
}
// 열번 도는 동안 검색하는 학생의 이름을 찾지 못했을 때
if (!found) {
System.out.println("이름 검색에 실패했습니다.");
}
}
static void deletScoreByNum() {
System.out.println("성적 삭제");
System.out.println("삭제할 성적데이터의 번호를 입력하세요 : ");
int select = sc.nextInt();
// 배열에서 삭제를 한다는 것은 null 로 만들어버리는 것
if (scoreData[select - 1] == null) {
System.out.println("일치하는 성적 데아터가 없습니다.");
return;
} else {
scoreData[select - 1] = null;
System.out.println("성적 데이터가 삭제 되었습니다.");
}
}
}
- 미니 프로젝트 미션 - 예약 시스템을 만들어 보세요.
- 변수를 어떻게 사용할지 공통 부분에 대한 약속
- 메뉴 정하기 → 예약조회, 예약, 수정, 삭제,
- 주제는 아무거나 가능 (기차, 비행기 … 등등)
영화관 예매
빙고판으로 1관, 2관, 3관 예약자 이름, 연락처, 영화 이름, 좌석, 인원수
프린터 영화 목록 뽑고 시간, 좌석선택, 시간선택
영화 목록,시간 보여주기- a
영화 예매 (좌석선택, 영화이름, 인원수)- b
예약자 이름으로 예약 확인- 유나 me
예약자 이름으로 예약 취소- c
예약자 이름으로 수정 (삭제후 재등록)- a
영화관 예매 시스템
🙉 조원들과 만든 코드의 현재 진행상황
// 예약확인에서 좌석번호가 나타나지 않는 이슈
// 예약취소 후 취소된 예약내역을 확인 할 수 없음
// 예약확인에서 예약되지 않은 사람의 이름을 입력하면 “예약 내역이 없습니다”등의 메세지가 없음 → 현재 아무런 일이 일어나지 않고 다시 돌아가는 구조
// “예약 내역 수정을 위해 영화를 다시 선택해주세요” 와 같이 사용자가 지금 자신이 무엇을 하고 있는지 다시 알려줄 수 있는 메세지 출력
// 예약 수정을 하면 예약이 취소됨과 동시에 재예약이 진행되기 때문에 예약이 취소되었습니다와 예약이 완료되었습니다 메세지가 같이 출력되는데 “예약이 수정되었습니다”라고 메세지를 보여주고 수정된 예약 정보를 같이 띄워주면 좋을 것 같음
package Reservation0412;
import java.util.Scanner;
public class MovieReservation {
static String name;
static int movieentrance;
static int movieTime;
public static int seatNumber;
// 멤버 변수 만들기
// ReservationData 타입의 배열
static ReservationData[] reservationData = new ReservationData[1];
// 예약자 이름, 연락처, 영화 이름, 좌석 등을 입력받아야 함.
static Scanner sc = new Scanner(System.in);
public static void main(String[] args) {
reservationData[0] = null;
int menu;
while (true) {
showMenu();
System.out.print("메뉴 선택 : ");
menu = sc.nextInt();
// 입력받은 번호 비교
if (menu == 1) {
showAllMovie(); // 영화 목록,시간 보여주기 - a
} else if (menu == 2) {
reservationMovie(); // 영화 예매 (좌석선택, 영화이름, 인원수) - b
} else if (menu == 3) {
searchReservationByName(); // 예약자 이름으로 예약 확인 - 유나 me
} else if (menu == 4) {
deletReservationByName(); // 예약자 이름으로 예약 취소 - c
} else if (menu == 5) {
ReservationReChoice(); // 예약자 이름으로 수정 (삭제후 재등록) - a
} else if (menu == 0) {
System.out.println(" 프로그램 종료 ");
break;
}
}
}
static void showMenu() {
// 전체 선택할 메뉴
System.out.println("—————————————");
System.out.println("1. 현재 상영하는 영화 확인하기");
System.out.println("2. 영화 예매하기");
System.out.println("3. 예약 확인");
System.out.println("4. 예약 취소");
System.out.println("5. 예약 수정");
System.out.println("0. 종료");
System.out.println("—————————————");
}
static void showAllMovie() {
System.out.println();
System.out.println("1관 파묘: 11:20 17:20 ");
System.out.println("2관 범죄도시: 11:20 17:20 ");
}
static void reservationMovie() {
if (reservationData[0] == null) {
System.out.print("이름을 입력해주세요: ");
name = sc.next();
System.out.print("영화를 선택해주세요. 1.파묘 2.범죄도시 >>");
movieentrance = sc.nextInt();
System.out.print("시간을 선택해주세요. 1. 11:20 2. 17:20 >>");
movieTime = sc.nextInt();
파묘1 f1 = new 파묘1();
파묘2 f2 = new 파묘2();
범죄도시1 b1 = new 범죄도시1();
범죄도시2 b2 = new 범죄도시2();
if (movieentrance == 1 && movieTime == 1) {
f1.movie1();
} else if (movieentrance == 1 && movieTime == 2) {
f2.movie1();
} else if (movieentrance == 2 && movieTime == 1) {
b1.movie1();
} else if (movieentrance == 2 && movieTime == 2) {
b2.movie1();
}
reservationData[0] = new ReservationData(name, movieentrance, movieTime, seatNumber);
} else
System.out.println("예매가 이미 진행되었습니다.");
}
static void searchReservationByName() {
System.out.print("이름을 입력해주세요 :");
String name2 = sc.next();
if (name2.equals(name)) {
reservationData[0].show();
}
}
static void deletReservationByName() {
System.out.print("이름 :");
String name2 = sc.next();
if (name2.equals(name)) {
reservationData[0] = null;
System.out.println("예매가 취소되었습니다.");
}
}
static void ReservationReChoice() {
System.out.print("이름을 입력해주세요");
String name2 = sc.next();
if (name2.equals(name)) {
reservationData[0] = null;
System.out.print("영화를 선택해주세요 1.파묘 2.범죄도시:");
movieentrance = sc.nextInt();
System.out.print("시간을 선택해주세요 1.11:20 2.17:20:");
movieTime = sc.nextInt();
파묘1 f1 = new 파묘1();
파묘2 f2 = new 파묘2();
범죄도시1 b1 = new 범죄도시1();
범죄도시2 b2 = new 범죄도시2();
if (movieentrance == 1 && movieTime == 1) {
f1.movie1();
} else if (movieentrance == 1 && movieTime == 2) {
f2.movie1();
} else if (movieentrance == 2 && movieTime == 1) {
b1.movie1();
} else if (movieentrance == 2 && movieTime == 2) {
b2.movie1();
}
System.out.println("예약이 취소되었습니다.");
} else
System.out.println("예약정보없음");
}
}
package Reservation0412;
public class ReservationData {
String name;
int movieentrance;
int movieTime;
int seatNumber;
public ReservationData(String name, int movieentrance, int movieTime, int seatNumber) {
super();
this.movieentrance = movieentrance;
this.movieTime = movieTime;
this.name = name;
this.seatNumber = seatNumber;
}
void show() {
String movieName;
String time;
if (movieentrance == 1) {
movieName = "파묘";
} else {
movieName = "범죄도시";
}
if (movieTime == 1) {
time = "11:20";
} else {
time = "17:20";
}
System.out.println("이름 : " + name);
System.out.println("영화 : " + movieName + ", " + "시간 : " + time + ", " + "좌석번호 : " + seatNumber);
}
}
각 영화를 상영하는 영화관의 좌석에서 예매자의 값을 받기 때문에 상영시간, 영화 별로 클래스를 만들어 놓음.
package Reservation0412;
import java.util.Scanner;
public class 범죄도시1 {
void movie1() {
int[][] arr = new int[6][6];
for (int i = 0; i < 6; i++) {
for (int j = 0; j < 6; j++) {
arr[i][j] = j + 1;
}
}
String[] arr2 = { "a열", "b열", "c열", "d열", "e열", "f열" };
Scanner in = new Scanner(System.in);
for (int i = 0; i < 6; i++) {
System.out.print(arr2[i] + " ");
for (int j = 0; j < 6; j++) {
System.out.print(arr[i][j] + " ");
}
System.out.println();
}
System.out.println();
int a = 0;
System.out.println("열을 선택하세요");
String s = in.next();
if (s.equals("a")) {
a = 0;
}
if (s.equals("b")) {
a = 1;
}
if (s.equals("c")) {
a = 2;
}
if (s.equals("d")) {
a = 3;
}
if (s.equals("e")) {
a = 4;
}
if (s.equals("f")) {
a = 5;
}
System.out.println("좌석을 선택해주세요");
int b = in.nextInt();
arr[a][b - 1] = 0;
for (int i = 0; i < 6; i++) {
System.out.print(arr2[i] + " ");
for (int j = 0; j < 6; j++) {
System.out.print(arr[i][j] + " ");
}
System.out.println();
}
System.out.println("예약이 완료되었습니다.");
String seatNumber = s + b;
}
}
package Reservation0412;
import java.util.Scanner;
public class 범죄도시2 {
void movie1() {
int[][] arr = new int[6][6];
for (int i = 0; i < 6; i++) {
for (int j = 0; j < 6; j++) {
arr[i][j] = j + 1;
}
}
String[] arr2 = { "a열", "b열", "c열", "d열", "e열", "f열" };
Scanner in = new Scanner(System.in);
for (int i = 0; i < 6; i++) {
System.out.print(arr2[i] + " ");
for (int j = 0; j < 6; j++) {
System.out.print(arr[i][j] + " ");
}
System.out.println();
}
System.out.println();
int a = 0;
System.out.println("열을 선택하세요");
String s = in.next();
if (s.equals("a")) {
a = 0;
}
if (s.equals("b")) {
a = 1;
}
if (s.equals("c")) {
a = 2;
}
if (s.equals("d")) {
a = 3;
}
if (s.equals("e")) {
a = 4;
}
if (s.equals("f")) {
a = 5;
}
System.out.println("좌석을 선택해주세요");
int b = in.nextInt();
arr[a][b - 1] = 0;
for (int i = 0; i < 6; i++) {
System.out.print(arr2[i] + " ");
for (int j = 0; j < 6; j++) {
System.out.print(arr[i][j] + " ");
}
System.out.println();
}
System.out.println("예약이 완료되었습니다.");
String seatNumber = s + b;
}
}
package Reservation0412;
import java.util.Scanner;
public class 파묘1 {
void movie1() {
int[][] arr = new int[6][6];
for (int i = 0; i < 6; i++) {
for (int j = 0; j < 6; j++) {
arr[i][j] = j + 1;
}
}
String[] arr2 = { "a열", "b열", "c열", "d열", "e열", "f열" };
Scanner in = new Scanner(System.in);
for (int i = 0; i < 6; i++) {
System.out.print(arr2[i] + " ");
for (int j = 0; j < 6; j++) {
System.out.print(arr[i][j] + " ");
}
System.out.println();
}
System.out.println();
int a = 0;
System.out.println("열을 선택하세요");
String s = in.next();
if (s.equals("a")) {
a = 0;
}
if (s.equals("b")) {
a = 1;
}
if (s.equals("c")) {
a = 2;
}
if (s.equals("d")) {
a = 3;
}
if (s.equals("e")) {
a = 4;
}
if (s.equals("f")) {
a = 5;
}
System.out.println("좌석을 선택해주세요");
int b = in.nextInt();
arr[a][b - 1] = 0;
for (int i = 0; i < 6; i++) {
System.out.print(arr2[i] + " ");
for (int j = 0; j < 6; j++) {
System.out.print(arr[i][j] + " ");
}
System.out.println();
}
System.out.println("예약이 완료되었습니다.");
String seatNumber = s + b;
}
}
package Reservation0412;
import java.util.Scanner;
public class 파묘2 {
void movie1() {
int[][] arr = new int[6][6];
for (int i = 0; i < 6; i++) {
for (int j = 0; j < 6; j++) {
arr[i][j] = j + 1;
}
}
String[] arr2 = { "a열", "b열", "c열", "d열", "e열", "f열" };
Scanner in = new Scanner(System.in);
for (int i = 0; i < 6; i++) {
System.out.print(arr2[i] + " ");
for (int j = 0; j < 6; j++) {
System.out.print(arr[i][j] + " ");
}
System.out.println();
}
System.out.println();
int a = 0;
System.out.println("열을 선택하세요");
String s = in.next();
if (s.equals("a")) {
a = 0;
}
if (s.equals("b")) {
a = 1;
}
if (s.equals("c")) {
a = 2;
}
if (s.equals("d")) {
a = 3;
}
if (s.equals("e")) {
a = 4;
}
if (s.equals("f")) {
a = 5;
}
System.out.println("좌석을 선택해주세요");
int b = in.nextInt();
arr[a][b - 1] = 0;
for (int i = 0; i < 6; i++) {
System.out.print(arr2[i] + " ");
for (int j = 0; j < 6; j++) {
System.out.print(arr[i][j] + " ");
}
System.out.println();
}
System.out.println("예약이 완료되었습니다.");
String seatNumber = s + b;
}
}
진행하며 느낀 나의 문제들 → 내가 원래 했던 방향은 ReservationData[] 에 예약자의 정보를 저장하려 했었다. 그래서 내가 맡은 부분의 ‘예약자 이름으로 예약확인’ 부분에서 for문을 사용해 ReservationData[]에 저장된 예약자들의 이름을 돌려 확인할 수 있게 만들었다. 조원들과 미션을 진행하며 각 자 맡은 메서드를 작성할 수 있도록 내가 전체적인 틀을 제공해줬는데 ReservationData[]라는 변수의 사용에 대해 정확하게 이야기를 하지 않고 넘어가 이런 오해가 생긴 것 같다. 변수명이 다른 팀원들이 알아 볼 수 있을 정도로 직관적이라고 생각했는데 다음에는 더 확실하게 이해할 수 있도록 주석을 달아줘야겠다. 큰 실수는 아니라 다행히 내 코드가 돌아가는 것에는 문제가 없었지만 예약자 정보를 담는 공간이 없으니 다른 예약자들이 예약을 할 수가 없다. 오직 한 사람의 영화 예약을 위해 예약 프로그래밍을 짠 것!
여러 사람들이 예약을 할 수 있도록 예약자 내역을 받는 변수를 꼭 만들어야겠다.
느낀 점 → 내 옆자리의 천재분이 내가 제공한 틀을 제외한 거의 모든 것들을 다 만드셨는데.. 일단 감정적으로는 회의감을 가장 많이 느낀 것 같다. 같은 시간을 투자해도 이런 다른 결과를 내는 사람이 있다는 것이 많이 자극이 되었고 걱정되고 초조해지기도 했다. 그래도 배운 것들을 내가 이해하고 아주 조금씩 응용을 할 수 있다는 것은 희망적이다. 단위평가 때는 또 어떨지 자신이 없지만.. 일단 이번 팀원들이 프로그래밍에 대해 열의가 있고 욕심이 있어서인지 점점 하다보면 범위가 넓어졌다. 내가 생각하지 못했던 기능들을 막 구현하려 하기도 하고! 그래서 따라가기가 벅차기도 했지만 꽤 재밌기도 했다. 뭔가 이번 주말에도 새로운 것을 구현하고 좀 알아가야 할 것 같다..
하지만 여전히 이해되지 않는 부분들이 있으므로 일단 코드를 잘 분석해보고, 수정하고 싶은 방향에 맞게 나름 조금씩 건드려 볼 예정이다.
내가 짠 전체적인 틀과 코드 (거의 강사님꺼에서 변수명만 바꾸고 복붙;;)
package Reservation0412;
import java.util.Scanner;
public class ReservationTest {
// 멤버 변수 만들기
// ReservationData 타입의 배열
static ReservationData[] reservationData = new ReservationData[1];
// 예약자 이름, 연락처, 영화 이름, 좌석, 인원수 등을 입력받아야 함.
static Scanner sc = new Scanner(System.in);
public static void main(String[] args) {
int menu;
while (true) {
// 단위테스트를 하고 넘어가야함.
showMenu();
System.out.print("메뉴 선택 : ");
menu = sc.nextInt();
// 입력받은 번호 비교
if (menu == 1) {
showAllMovie(); // 영화 목록,시간 보여주기 - 나실
} else if (menu == 2) {
reservationMovie(); // 영화 예매 (좌석선택, 영화이름, 인원수) - 기웅
} else if (menu == 3) {
searchReservationByName(); // 예약자 이름으로 예약 확인 - 유나
} else if (menu == 4) {
deletReservationByName(); // 예약자 이름으로 예약 취소 - 정우
} else if (menu == 5) {
ReservationReChoice(); // 예약자 이름으로 수정 (삭제후 재등록) - 나실
} else if (menu == 0) {
System.out.println(" 프로그램 종료 ");
break;
}
}
}
static void showMenu() {
// 전체 선택할 메뉴
System.out.println("--------------------------");
System.out.println("1. 현재 상영하는 영화 확인하기");
System.out.println("2. 영화 예매하기");
System.out.println("3. 예약 확인");
System.out.println("4. 예약 취소");
System.out.println("5. 예약 수정");
System.out.println("0. 종료");
System.out.println("--------------------------");
}
static void showAllMovie() {
System.out.println("1관 파묘: 11:20 17:20 ");
System.out.println("2관 범죄도시: 11:20 17:20 ");
}
static void reservationMovie() {
}
static void searchReservationByName() {
System.out.println("예약 확인");
System.out.print("예약자의 성함을 입력하세요 : ");
String name = sc.next();
// 찾으면 찾았다고, 못찾으면 못찾았다고 판단
boolean found = false;
for (int i = 0; i < 10; i++) {
// 배열 안의 값이 널이 아니면서 이름이 같을 때
if (reservationData[i] != null && (reservationData[i].name).equals(name)) {
System.out.println(name + "의 예약 내역을 확인해드리겠습니다. ");
reservationData[i].show();
found = true;
break; // 찾았다면 반복문 끝내기
}
}
// 열번 도는 동안 예약자의 이름을 찾지 못했을 때
if (!found) {
System.out.println("예약 정보를 찾을 수 없습니다.");
}
}
static void deletReservationByName() {
}
static void ReservationReChoice() {
}
}
- 예외처리
키워드 : 이퀄스와 헤쉬코드, 오버라이딩
나중에 컬렉션을 배울 때 필요,,
package etc0411;
import java.util.Objects;
@NoArgsConstructor // 롬북을 이용해 기본생성자를 만들어줌!!
@AllArgsConstructor
@EqualsAndHashCode
public class Person {
long id;
String name;
// public Person(long id, String name) {
// TODO Auto-generated constructor stub
// }
// equals 를 오버라이딩하면 hashCode 도 오버라이딩한다.
// hashCode 값은 고유하다.
// public void setId(long id, String name) {
// this.id = id;
// this.name = name;
// }
//
// @Override
// public boolean equals(Object obj) {
//
// Person other = null; // 선언을 위에서
//
// if (obj instanceof Person) {
// other = (Person)obj;
// }
// // 아이디와 이름 비교해서 똑같을 때 같은 객체로 판단하겠다
// return this.id == other.id && (this.name).equals(other.name);
// }
//
// @Override
// public int hashCode() {
// // hashCode 가 똑같으면 똑같은 개체로 판단한다.
// return Objects.hash(id, name);
// }
//
//
}
package etc0411;
public class PersonTest {
public static void main(String[] args) {
Person p1 = new Person(1111111, "홍길동");
Person p2 = new Person(1111111, "홍길동");
// 주소값을 비교하면 다르게 나오지만 값을 직접 비교하도록 오버라이딩하면 값을 비교할 수 있다.
if (p1.equals(p2)) { // 객체를 비교할 땐 equals 사용
System.out.println("같습니다.");
} else {
System.out.println("다릅니다.");
}
System.out.println(p1.hashCode());
System.out.println(p2.hashCode());
}
}
package etc0411;
import lombok.AllArgsConstructor;
import lombok.NoArgsConstructor;
import lombok.ToString;
//0412
@NoArgsConstructor // 롬북을 이용해 기본생성자를 만들어줌!!
@AllArgsConstructor
@ToString(exclude = "name") // (exclude = "name") <- 빼고 싶은 요소가 있을 때
public class Student {
String name;
int age;
int grade;
int ban;
int no;
// public Student(String name, int age, int grade, int ban, int no) {
// super();
// this.name = name;
// this.age = age;
// this.grade = grade;
// this.ban = ban;
// this.no = no;
// }
//
// // 기본생성자는 습관적으로 쓴다!
// // 어떤 역할을 하든 안하든 코딩할때 기본
// public Student() {
//
// }
//
// @Override
// public String toString() {
// return "Student [name=" + name + ", age=" + age + ", grade=" + grade + ", ban=" + ban + ", no=" + no + "]";
// }
//
}
package etc0411;
//0412
public class StudentTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
Student s = new Student("홍길동", 10, 1, 1, 10);
System.out.println(s.toString());
}
}
'2024_UIUX 국비 TIL' 카테고리의 다른 글
UIUX _국비과정 0416 (1) | 2024.05.29 |
---|---|
UIUX _국비과정 0415 (0) | 2024.05.29 |
UIUX _국비과정 0411 (0) | 2024.05.29 |
UIUX _국비과정 0409 (0) | 2024.05.29 |
UIUX _국비과정 0408 (0) | 2024.05.29 |