Cute Happy Ghost
본문 바로가기
JAVA/Java

20201005_ 10 Review (생성자, 초기화)

by JENN_tech7 2020. 10. 6.
728x90
SMALL

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되는건 뭐냐고

진짜 욕나오네 ㅉ:띠ㅏㅓㄱㅈ믿러;ㅇㄴ;ㅣ러ㅑㅣㅏㅁ넝

나는 프로그램시작하겠습니다가 아니라 프로그램 시작을 넣었다고

눈물나네 진자 ㅠㅠㅠㅠ

아니 심지어 다른 패키지에 있는건데도 왜 걔가 실행되는거야? 삭제해버릴까 진짜 ㅠ

 

 

 

ㅅㅂㅋㅋㅋㅋㅋ 난리친결과...

이클립스상의 오류인걸로 ...

차암나...

헛웃음이 나오네...껐다켜도 안되는건뭔데? 시간을 달라이거야?

느려터진놈 진짜 

그램 버려버릴까 진짜 ㅡㅡ

분노의 복습 끝...

 

728x90
LIST

'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

댓글