클래스배열 넌 뒤졌다 진짜 개조져준다
static은 그냥 보내준다 운좋은줄 알아라 ;;;;
▶클래스 배열 배우기전 일반배열 연습해보기
- 배열 선언 후 값 할당
int[] arr;
arr= new int[3];
arr[0]=10;
arr[1]=20;
arr[2]=50;
- for 문과 확장 for 문으로 배열보기
//for
for(int i=0;i<arr.length;i++) {
System.out.println(arr[i]);
}
//확장 for
for(int n : arr) {
System.out.println(n);
}
일반 배열과 형식은 동일하니
클래스 배열 어렵게 생각하지말자
여기 계좌번호와 잔액 멤버변수를 가지고있는 Account 클래스가 있다.
Account 클래스는
입금할 수 있는 deposit() 메서드
출금할 수 있는 withdraw() 메서드
계좌정보를 출력하는 display() 메서드를 가지고 있다
※ Account 클래스를 배열에 넣어 클래스배열을 만들어보자 !
▼ 클래스 변수에 값 넣기
- int 변수에 값을 넣으려면 정수를 입력
String 변수에 값을 넣으려면 문자열을 입력
.
.
.
클래스변수에 값을 넣으려면 ?
=> new 로 객체를 생성해서 넣는다 !
Account acc = new Account("001-100-2000", 10000);
▼ 클래스 배열에 값 넣기
- int 배열에는 int를 넣는다
String 배열에는 String 을 넣는다
Account 배열에는 Account 를 넣는다.. 어떻게 넣지 ?
=> new 로 객체생성해서 넣는다
1. 클래스 (Account 클래스) 배열 new 로 객체생성
Account[] accArr = new Account[3];
2. n번째 배열에 값 넣기 ( arr[3] = 10; )
accArr[0]= new Account("001-100-2001", 100000);
▼ 클래스 배열 값 확인하기
- for 문 이용
for(int i=0;i<accArr.length;i++) {
accArr[i].display();
}
=> Account 클래스가 가지고 있는 display() 메서드 호출하기는 어떻게 ?
- 참조변수. 메서드 ()
△ same with
↓
accArr[0].display();
accArr[1].display();
accArr[2].display();
- 확장 for문 이용
for(Triangle t : arr) {
t.draw();
}
★최종정리★
(student 클래스는 기존에 만들어져있음)
student 배열만들고 요소 2개 넣기
for문, 확장for문 이용해서 보기
Student[] arr = new Student[2];
arr[0] = new Student("한서현", "20220001");
arr[1] = new Student("한서현", "20220002");
for(int i = 0; i < arr.length; i++) {
arr[i].showInfo();
}
System.out.println();
for(Student s : arr) {
s.showInfo();
}
▼ 1. for 문을 이용해 2. 사용자에게 값을 받아 클래스배열 만들어보기
( 그냥 위의 과정을 for 문 이용해서 하는거임 )
Account[]arr = new Account[3];
Scanner sc = new Scanner(System.in);
for(int i=0;i<arr.length;i++) {
System.out.println("계좌번호, 잔액, 출금액 입력 ! ");
String accId=sc.nextLine();
int balance = sc.nextInt();
int money = sc.nextInt();
sc.nextLine();
arr[i]=new Account(accId,balance);
arr[i].withdraw(money);
}
▼ showInfo 메서드 없이 확장 for 를 이용하여 배열값출력하기
for (int i=0;i<arr.length ;i++ ){
System.out.println("사각형의 넓이 : " + arr[i].findArea());
}
▷ 3개가 입력되어도, 2개가 입력되어도 넘어가게 만들어라
★★★★★ 통째로 암기
1. 오버로딩 생성자
- name,num,birth 세개를 적을 수도 있고
- name, num 만 적을 수도 있다
public PhoneInfo(String name, String num, String birth) {
this.name=name;
this.num=num;
this.birth=birth;
}
public PhoneInfo(String name, String phoneNumber){
this.name=name;
this.num=num;
}
2. null , empty 설정
public void showInfo() {
System.out.println("name: "+name);
System.out.println("phone: "+num);
if(birth!=null && !birth.isEmpty())
System.out.println("birth: "+birth);
System.out.println();
}
- 입력된 정보를 보여주되,
name과 num 은 보여주고 birth는 null 값이 아니거나 empty가 아니면 보여줘라
◈ nextInt 다음에 nextLine 나오면 nextLine 하나 더 써서 엔터값 초기화해줘야 함
int a = sc.nextInt();
int b = sc.nextInt();
sc.nextLine(); /// 요렇게
int c = sc.nextLine();
◈ .equalsIgnoreCase
String quit = sc.nextLine();
if (quit.equalsIgnoreCase("Q"))break;
'JAVA' 카테고리의 다른 글
[JAVA] super() / final / 포함관계 (Has a) / 클래스를 멤버변수로 넣기 / classpath (0) | 2022.03.01 |
---|---|
[JAVA] 상속 / 오버라이딩 / this,super / 검색하기 (0) | 2022.02.26 |
[JAVA] Static (0) | 2022.02.23 |
[JAVA] 생성자 / 접근제한자 / getter,setter (0) | 2022.02.22 |
[JAVA] 객체와 클래스 (0) | 2022.02.21 |