N스크린하이브리드앱과정/JAVA 44

[2주][5일][3~4th] 인터페이스 상속의 개념.

*인터페이스 상속 개념 1. 아래 그림과 같이, 2개의 인터페이스와 그 안에 각각 메서드를 만든다. 2. 인터페이스는 다중상속이 가능하다. 3. 상속 받아온 인터페이스는 메서드오버라이딩이 필수가 아니다. 4. 그러나 상속 받아온 클래스는 필수이다! 5. 오버라이딩 설정을 하면(alt+shift+s+v) 6. 정상적으로 3개의 메소드가 생성이 된다 7. 상속받은 ISay의 인스턴스를 생성해서 출력한다. 결과 *인터페이스 상속 실습(1)1. IColor 인터페이스를 만든다.인터페이스 안에서 대문자로 표시된 RED 멤버변수는 자동으로 이탤릭체로 바뀌는데, 자동으로 상수가 된다는 의미이다. 2. AbsColor메서드를 만들고, 오버라이딩을 한다. 헌데, 오류가 나네?앞에 IColor 인터페이스에서 분명 2개의 ..

[2주][4일][5~7교시] JAVA: 접근지정자 final, 추상클래스와 인터페이스

★ 접근지정자 final 오늘은 앞에서 배운 static 말고 다른 접근지정자인 "final"에 대해 실습하고자 한다. 멤버변수의 접근지정 실습 1. FinalTest, FinalTest2 클래스를 각각 만들어 준다. 2. a의 값을 20으로 변경해준 후 출력해본다. 3. 정상적으로 값이 변경되는 것을 알 수 있다. 4. 멤버변수에 접근지정자 final을 지정한다. 5. a값을 20으로 변경하려고 하니, 오류가 출력된다. 6. 이번에는 메서드에 final 접근지정자를 설정해본다. 7. FinalTest2 클래스에서 오버라이딩을 하려하자, 오류가 났다. 8. 마지막으로 클래스에 final을 지정해보자. 9. 아예 상속을 못하게 막아준 것을 아래 그림을 통해 알 수 있다. ★ 추상클래스와 인터페이스 차이점 ..

[2주][4일][3~4교시] JAVA: 레퍼런스 형변환 복습, is-a연산자, 업/다운 캐스팅.

*복습 업 캐스팅과 다운 캐스팅~ ☆ 실습(1) 1. 부모클래스와 자식클래스 2. 메인 메서드 - 설명 포함 (1) 업 캐스팅 (2) 다운 캐스팅 ☆ 실습(2) - Car 1. Car클래스 2. 트럭클래스(서브클래스-1) 3. 택시클래스(서브클래스-2) 4. 메인 메서드 - 업캐스팅, 다운캐스팅(오류), 다운캐스팅(정상) 출력 ☆ 실습(3): is-a 연산자. instanceof 1. 메인 메서드 2. 핸드폰/스마트폰 클래스 ☆ 실습(4): 업 캐스팅의 원리 1. 부모와 자식 클래스 2. 메인 메서드 처음엔 자식클래스의 인스턴스 c를 생성하여 출력했고, 두번째는 부모클래스의 인스턴스 p를 생성해서, p를 c로 업 캐스팅했다. 첫번째의 결과는 당연히 오버라이딩의 출력문이 나올 것이고, 두번째의 결과는 자식..

[2주][3일][8교시] JAVA 연습문제(for문)(2)

[14] 다음은 숫자맞추기 게임을 작성한 것이다. 1과 100사이의 값을 반복적으로 입력해서 컴퓨터가 생각한 값을 맞추면 게임이 끝난다. 사용자가 값을 입력하면, 컴퓨터는 자신이 생각한 값과 비교해서 결과를 알려준다. 사용자가 컴퓨터가 생각한 숫자를 맞추면 게임이 끝나고 몇 번 만에 숫자를 맞췄는지 알려준다. (1)~(2)에 알맞은 코드를 넣어 프로그램을 완성하시오. 결과 코딩 [15] 다음은 회문수를 구하는 프로그램이다. 회문수(palindrome)란, 숫자를 거꾸로 읽어도 앞으로 읽는 것과 같은 수를 말한다. 예를 들면 '12321'이나 '13531'같은 수를 말한다. (1)에 알맞는 코드를 넣어서 프로그램을 완성하시오. [Hint] 나머지 연산자를 이용하시오. 결과 (1) number = 12321..

[2주][3일][5~7교시] JAVA: static의 활용. 실습

*static 실습(1) 접근지정자 중 static에 대해 알아보자. StaticTest 클래스에서 변수 a를 static으로 지정한 경우, 메인 메서드에서 객체생성없이 출력이 가능하다. system.out.println(StaticTest.a); 이런 식으로 말이다. *static 실습(2) 문제 결과 정답 메인 메서드에서, 1번째 값은 객체를 생성해 실행되었고, 2번째 값은 count는 객체, total은 static으로 클래스에서 바로 호출하였다. 마지막 3번째 값은 static으로 지정된 show()메서드를 호출하였다. s(ㅇ_ㅇ)/......오늘도 벌써 다 끝나간다....꺄호

[2주][3일][5~7교시] JAVA: 레퍼런스 형변환. 업캐스팅과 다운캐스팅

*레퍼런스 형변환 - 업캐스팅 실습(1) Shape(부모클래스)와 Cir,Rec,Tri(자식클래스) 메인 메서드 본래는 이런 식으로 객체를 여러개 생성하지만, 업캐스팅 사용: 부모=자식 부모=자식 으로 업캐스팅한 참조변수 s는 같은 메서드로 출력이 가능해 편리하다. 참조변수가 그때그때 다른 자식클래스로 대체가 된다는 것인데, 이렇게 객체의 재사용이 가능하다! Shape s = null; 의 뜻은 참조변수(객체) s를 초기화시킨다는 의미이다. 즉, 자료형에서 int n=0; 으로 지정해주는 것과 같은 개념이라고 생각하면 된다. 결과 *업캐스팅 실습(2) - 문제 : 다음과 같은 클래스와 메서드를 만들고, 객체를 생성하여 아래와 같은 결과가 나오도록 출력하라. 결과 정답 - 클래스 생성 메인 메서드 *형변환..

[2주][3일][3~4교시] JAVA: 메서드 오버라이딩, 생성자 오버라이딩

*메서드 오버라이딩 1. 동물 울음소리 실습 전체 소스 문제 동물 클래스 Cat 클래스(Animal 상속) Dog 클래스(Animal 상속) 메인메서드 결과 2. 잔고 출력하기 기존의 account2 클래스는 잔고 부족일때 잔고를 출력하지 않았다. 그걸 잔고가 출력되게 바꿔줄거다. 문제 Account2 클래스 BusanBank 클래스 메인 메서드 *생성자 오버라이딩 - 객체(참조변수)의 재사용! 1. 차 마음대로 바꾸기 {Car3 클래스} {메인 메서드} 객체의 재사용 c2객체를 2번 재사용 하였다. 첫번째에는 색깔만 "Red"로 바꿨고, 두번째에는 색깔과 타입을 바꾸었다. 생성자 오버라이딩을 통해 가능해진 것이다. 결과 또 아래 그림의 내용을 더 추가해 보았다. 위 그림처럼 설정하여도 객체의 재사용이 ..

[2주][2일][8교시] JAVA 연습문제(for문)(1)

[2] 1부터 20까지의 정수 중에서 2 또는 3의 배수가 아닌 수의 총합을 구하시오. 정답 결과 [3] 1+(1+2)+(1+2+3)+(1+2+3+4)+(1+2+3+...+10)의 결과를 계산하시오. 정답 결과 [4] 1+(-2)+3+(-4)+... 과 같은 식으로 계속 더해나갔을 때, 몇까지 더해야 총합이 100이상이 되는지 구하시오. 정답(1) - for문 정답(2) - while문 결과 [5] 다음의 for문을 while문으로 변경하시오. --> 피라미드 출력 문제 정답 결과 [6] 두 개의 주사위를 던졌을 때, 눈의 합이 6이 되는 모든 경우의 수를 출력하는 프로그램을 작성하시오. --> 주사위 두 눈의 합이 6이 되는 경우의 수는 총 5가지이다. (1,5),(2,4),(3,3),(4,2),(5,..

[2주][2일] 메서드 오버라이딩

*메서드 오버라이딩 하는법 1. 상속받을 서브클래스에서 단축키 alt+shift+s+v를 누른다. 2. 부모클래스 Parent에 체크하고, Insertion point 옵션에서 "First member"를 선택한 후 확인을 누른다. *메서드 오버라이딩 실습(1) 다음과 같은 지시에 따라 코딩을 완성해 보자. 지시에 맞게 부모클래스와 자식클래스를 만들어준다. b는 부모클래스의 객체이고 c는 자식클래스의 객체이다. b.parentPrn()을 호출하면 부모클래스의 출력문이 출력될 것이고 c.childPrn()을 호출하면 자식클래스의 출력문이 실행될 것이다. 마지막으로 c.parentPrn()메서드는 자식클래스에서 메서드 오버라이딩을 한 것이므로, 자식클래스에서 오버라이딩한 출력문이 실행된다. *메서드 오버라이..

[2주][2일] JAVA: 상속 - 미완료

*상속의 특징 1. 기존 클래스에 멤버변수나 메소드를 추가하여 새로운 클래스를 만드는 것이다(변경된 내용들만 추가). 2. [형식]class서브클래스 extends슈퍼클래스 a.슈퍼클래스 = super class = 상위클래스 = 부모클래스 = parent class b.서브클래스 = sub class = 하위클래스 = 자식클래스 3. 개발기간이나 노력을 단축할 수 있다(코드의 재사용성이 높아짐). 4. 상속받은 클래스도 다시 상속 가능하다. 5. 모든 클래스는 Object클래스를 기본으로 상속받는다. 6. 상속은 is-a관계: 하위클래스는 상위클래스이다(sub class is a super class) *상속 실습(1) - 할아버지와 아버지 1. "GrandFather"라는 할아버지 클래스를 만든다. ..