Today
- Do it! 자바 완전 정복
- 클래스의 다형성과 상속 수업진행
- 자바 일반 제어자
final, abstract 수업 진행
- 최상위 클래스
object 수업진행
- 클래스의 상속을 이용해서 오버라이딩 실습 (구구단 활용)
class Gugudan {
int[] multiple = {1,2,3,4,5,6,7,8,9};
int[][] dan(int rows) {
int[][] dan = new int[rows][multiple.length];
for(int i = 0; i < dan.length; i++) {
for(int j = 0; j < multiple.length; j++) {
dan[i][j] = (2+i) * multiple[j];
}
}
return dan;
}
void printDan(int[][] dan){
for(int i = 0; i < dan.length; i++) {
System.out.printf(" %d단 \n",dan[i][0]);
System.out.println("----------- ");
}
for(int i = 0; i < multiple.length; i++) {
for(int j = 0; j < dan.length; j++) {
System.out.printf("%d X %d = %2d ",dan[j][0], multiple[i], dan[j][i]);
}
System.out.println();
}
}
}
class ChildGugudan1 extends Gugudan {
void printDan(int[][] dan){
for(int i = 0; i < dan.length; i++) {
System.out.printf(" %d단 ",dan[i][0]);
if (i == (dan.length-1)) {
System.out.println();
System.out.println("----------- ----------- ----------- -----------");
}
}
for(int i = 0; i < multiple.length; i++) {
for(int j = 0; j < dan.length; j++) {
System.out.printf("%d X %d = %2d ",dan[j][0], multiple[i], dan[j][i]);
}
System.out.println();
}
}
}
class ChildGugudan2 extends Gugudan {
int[][] dan(int rows) {
int[][] dan = new int[rows][multiple.length];
for(int i = 0; i < dan.length; i++) {
for(int j = 0; j < multiple.length; j++) {
dan[i][j] = (6+i) * multiple[j];
}
}
return dan;
}
void printDan(int[][] dan){
for(int i = 0; i < dan.length; i++) {
System.out.printf(" %d단 ",dan[i][0]);
if (i == (dan.length-1)) {
System.out.println();
System.out.println("----------- ----------- ----------- -----------");
}
}
for(int i = 0; i < multiple.length; i++) {
for(int j = 0; j < dan.length; j++) {
System.out.printf("%d X %d = %2d ",dan[j][0], multiple[i], dan[j][i]);
}
System.out.println();
}
}
}
class Multiple {
int mul(int a, int b) {
return a * b;
}
void printDan(int[][] e) {
System.out.println(e[0][0]);
}
}
class GuguSecond extends Multiple {
int[] multiple = {1,2,3,4,5,6,7,8,9};
int[] dan = {2,3,4,5,6,7,8,9};
int[][] makeGugudan() {
int[][] gugudan = new int [dan.length][multiple.length];
for(int i = 0; i < gugudan.length; i++) {
for(int j = 0; j < multiple.length; j++){
gugudan[i][j] = super.mul(dan[i], multiple[j]);
}
}
return gugudan;
}
void printDan(int[][] dan) {
for(int i = 0; i < 4; i++) {
System.out.printf(" %d단 ",dan[i][0]);
if (i == 3) {
System.out.println();
System.out.println("----------- ----------- ----------- -----------");
}
}
for(int i = 0; i < multiple.length; i++) {
for(int j = 0; j < 4; j++) {
System.out.printf("%d X %d = %2d ",dan[j][0], multiple[i], dan[j][i]);
}
System.out.println();
}
for(int i = 4; i < 8; i++) {
System.out.printf(" %d단 ",dan[i][0]);
if (i == 7) {
System.out.println();
System.out.println("----------- ----------- ----------- -----------");
}
}
for(int i = 0; i < multiple.length; i++) {
for(int j = 4; j < 8; j++) {
System.out.printf("%d X %d = %2d ",dan[j][0], multiple[i], dan[j][i]);
}
System.out.println();
}
}
}
Review
- 클래스의 다형성 관련해서 내용 자체는 이해는 가나, 왜 그렇게 쓰는지 이해가 잘안되었으나 오버라이딩을 배우고.....음....이래서 쓰는건가라고 느낌만 잡은것같다.
- 최상위 클래스
object 관련해서 좀 더 내용을 살펴봐야할 것 같다.
TO DO
- JAVA 수업진도 나간거 복습하기
- 클래스 부분 외부구조 관련하여 정리 진행필요 - 오버로드 메서드 부분 안에 추가 정리 필요
- 블로그 프로젝트 매일 조금씩 고도화 해가기