Grade클래스를 만들어주고 Grade[] grade = new Grade[3];을 하면 클래스배열임
클래스를 배열로 만들어 준다는 뜻
Grade[] grade = new Grade[3];
grade : 별칭
new : 생성자 만들어줌 중요!
그리고 초기화를 해줘야한다
grade[0] = new Grade();
grade[1] = new Grade();
grade[2] = new Grade();
개헷갈리게 왜 이렇게해야하는지 모르겠다 증말...
안해주면 생성이 안된다고한다
그러니까 필수!!!
근데 이제 저 0,1,2 이런것만보면 빨리 없애버리고 for문으로 바꿔버리고싶다
for(int i = 0; i< grade.length; i++) {
grade[i] = new Grade();
이렇게!
드디어 클래스배열이 뭔지 대충 감이 온다 ...하 ㅠㅠ
grade[i] = new Grade();
grade[i] = new Grade();
이거 뭔데 이렇게 안외워지냐...
*클래스배열
Grade[] grade = new Grade[3];
클래스이름[] 별명 = new 클래스이름[길이]
*생성자
grade[i] = new Grade();
클래스별명[변수] = new 클래스이름();
미쳤냐!!!!
개헷갈림.....
통일안해...? !!!!!
*메인에서 클래스 호출
GradeDriver driver = new GradeDriver();
클래스이름 별명 = new 클래스이름
driver.input();
driver의 input메소드 출력
//12. 프로젝트 11번을 기준으로 만드시오.
//프로젝트 11번의 Grade 클래스를 데이터 입력으로만 사용
//하세요. 그 다음 GradeDriver에서 Grade를 클래스 배열로
//사용하여, 학생 이름과 점수를 입력하고 출력하는 프로그램을
//작성하세요.
//생성 클래스 : Grade, Main, GradeDriver
- Grade클래스
public class Grade {
String name;
int score;
public Grade() {
System.out.println("Grade 기본 생성자");
}
}
- GradeDriver 클래스
import java.util.Scanner;
public class GradeDriver{
Grade[] grade = new Grade[3];
int count = 0;
void input() {
Scanner scan = new Scanner(System.in);
for (int i = 0; i < grade.length; i++) {
grade[i]= new Grade();
System.out.print((i+1) + "번 학생 이름을 입력해주세요. : ");
grade[i].name = scan.next();
System.out.print((i+1) + "번 학생 점수를 입력해주세요. : ");
grade[i].score = scan.nextInt();
output();
count++;
}
}
void output() {
System.out.println((count + 1) + "번 학생 이름 : " + grade[count].name );
System.out.println((count + 1) + "번 학생 점수 : " + grade[count].score+ "점");
}
}
- Main클래스
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
GradeDriver driver = new GradeDriver();
driver.input();
}
//14번 . 현재 소스코드를 실행 시켜 보세요.
//PersonDriver 클래스를 새롭게 생성하시오.
//Person 클래스를 이용하여, 멤버필드로 생성하세요.
//12~16번째 데이터 초기화는 PersonDriver()생성자에서 하세요.
//18~21번째에 대한 출력문은 print()메소드를 정의하여 출력하시오.
//void main은 간소화하시오(즉, new PersonDriver()만 남도록 코딩하세요)
- Person클래스
public class Person {
int age;
String name;
boolean isMarried;
int numberOfChildren;
}
- PersonDriver클래스
class PersonDriver {
int age;
String name;
boolean isMarried;
int numberOfChildren;
Person person = new Person();
public void PersonDriver() {
person.age = 40;
person.name = "James";
person.isMarried = true;
person.numberOfChildren = 3;
}
void print() {
System.out.println("age : " + person.age);
System.out.println("name : " + person.name);
System.out.println("isMarried : " + person.isMarried);
System.out.println("numberOfChildren : " + person.numberOfChildren);
}
}
public class PersonTest {
public static void main(String[] args) {
new PersonDriver();
}
}
Person person = new Person()을 메소드안에 해줘가지고 자꾸 오류가 났다
앞으로 나는 저렇게 이름이랑 별명 똑같이 안해
엄청 헷갈리기 때문이지 ...
아니 분명 드라이버1을 했는데 다른 클래스가 run되는건 뭐냐고
진짜 욕나오네 ㅉ:띠ㅏㅓㄱㅈ믿러;ㅇㄴ;ㅣ러ㅑㅣㅏㅁ넝
나는 프로그램시작하겠습니다가 아니라 프로그램 시작을 넣었다고
눈물나네 진자 ㅠㅠㅠㅠ
아니 심지어 다른 패키지에 있는건데도 왜 걔가 실행되는거야? 삭제해버릴까 진짜 ㅠ
ㅅㅂㅋㅋㅋㅋㅋ 난리친결과...
이클립스상의 오류인걸로 ...
차암나...
헛웃음이 나오네...껐다켜도 안되는건뭔데? 시간을 달라이거야?
느려터진놈 진짜
그램 버려버릴까 진짜 ㅡㅡ
분노의 복습 끝...
'JAVA > Java' 카테고리의 다른 글
20201006_11 출석부프로그램, 설계 (0) | 2020.10.06 |
---|---|
20201006_11(생성자, this, 가비지) (0) | 2020.10.06 |
20201005_10 클래스배열, 생성자 (0) | 2020.10.05 |
20201005_10(for문빠져나가기, run) (0) | 2020.10.05 |
20200929_9 클래스배열 (0) | 2020.09.29 |
댓글