///
Search
🙂

26일차 (7/19)

손정아

JAVA

인터페이스의 역할

인터페이스의 2가지 의미

예외처리

멋사 중간테스트

문제1

문제3

Tomcat

세팅

김치훈

JAVA

인터페이스란?
인터페이스의 2가지 의미
예외 처리
getter, setter

멋사 중간테스트

문제 1
문제 2
문제 3
문제 4

이승훈

JAVA

클래스 다중 상속의 장점과 단점은?
장점 : 객체에 다형성을 원하는 만큼 부여할 수 있다.
단점 : 하나의 자식 클래스에 2명 이상의 부모 클래스에서 똑같의 형태의 메서드를 2개 이상을 물려받을 수 있다. 이때 자식 클래스에서 해당 메서드를 오버라이드를 하지 않는다면, 모호함이 발생한다. 참고로 자식 클래스에서 해당 메서드를 오버라이드 해야할 의무는 없다.
소스 코드
자바에서 클래스 다중 상속을 막은 이유는?
C++과 달리, 자바는 개발자가 고생할 수 있는 여지를 줄이기 위해서, 해당 기능을 없앴다.
클래스 다중 상속에서 나타날 수 있는 문제점을 해결하는 방법은?
자식 클래스에서 모호한 메서드를 오버라이드 한다.
인터페이스와 클래스의 차이점은?
인터페이스는 100% 추상 클래스 이다.
인터페이스 안에 있는 메서드는 어차피 추상메서드 이기 때문에, abstract 키워드를 메서드 앞에 붙일 필요가 없다.
자바에서 인터페이스 다중상속을 허용한 이유는?
객체지향 프로그래밍에서 다형성은 굉장히 중요하다.
자바에서는 다중 상속이 막혀있어서, 자유로운 다형성 부여가 힘든 상황이다.
그래서 자바는 인터페이스라는 제한된 형태의 클래스는 다중 상속을 허용했다.
인터페이스를 다중상속 해서, 모호함이 발생해도, 자식 클래스에서 해당 메서드를 오버라이드 해야하는게 필수 이기 때문에, 모호함이 존재할 수 없는 구조이다.
예외 처리
getter, setter
중간 테스트

최태승

Java

시험문제코드

tomCat

권종석

문제 1(단순 구현)

package hello; public class HelloJava { public static void main(String[] args) { long answer = 0; for(int i=0; i<100000 ; i++) { if(i%3==0 && i%5==0) { answer+=i; } else { if(i%3==0) { answer+=i; } else if(i%5==0) { answer+=i; } } } System.out.println(answer); } }
JavaScript
복사

문제 2 (ArrayList 사용)

package hello; import java.util.*; import java.io.*; public class HelloJava { public static void main(String[] args) { ArrayList<Integer> ar = new ArrayList<Integer>(); long answer = 0; ar.add(0); ar.add(1); for(int i = 2 ; i<=50000000;i++) { ar.add(ar.get(i-2)+ar.get(i-1)); if(ar.get(i)%2==0) { answer+=ar.get(i); } } System.out.println(answer); } }
JavaScript
복사

문제 3 (소인수 구하는 알고리즘)

package hello; import java.util.*; import java.io.*; public class HelloJava { public static void main(String[] args) { long num = 1600851475143L; int max = 0; int i=2; while(num>=2) { if(num%i==0) { max = Math.max(max, i); num/=i; } else { i+=1; } } System.out.println(max); } }
JavaScript
복사

문제 4(Brute Force로 풀었는데 여기서 조금 더 효율적으로 짜야할거 같아요. 실제 코테였으면 시간초과 나왔을거같아요. 일단 넣어놓을게요!)

package hello; import java.util.*; import java.io.*; public class HelloJava { static long max = 0L; public static void main(String[] args) { long num = 0L; long var = 0L; long result = 0L; for(int i=1000; i<10000;i++) { for(int j=1000;j<10000;j++) { num = i*j; var = toStr(num); if(var%2==1) { //홀수개 길이 result = odd(num); } else { //짝수개 길이 result = even(num); } } } System.out.println(result); } static public long toStr(long a) { String value = Long.toString(a); long num = 0L; num = value.length(); return num; } static public long even(long a) { String sen = ""; sen = Long.toString(a); int num =0 ; String[] arr; long mmax = 0L; arr = sen.split(""); for(int i =0; i<sen.length()/2 ;i++) { if(Integer.parseInt(arr[i])==Integer.parseInt(arr[sen.length()-i-1])) { num++; } } if(num==sen.length()/2) { mmax=a; max = Math.max(mmax, max); } return max; } static public long odd(long a) { String sen = ""; sen = Long.toString(a); int num =0 ; String[] arr; long mmax = 0L; arr = sen.split(""); for(int i =0; i<sen.length()/2-1 ;i++) { if(Integer.parseInt(arr[i])==Integer.parseInt(arr[sen.length()-i-1])) { num++; } } if(num==sen.length()/2) { mmax = a; max = Math.max(mmax, max); } return max; } }
JavaScript
복사

JAVA

자바에서 인터페이스의 역할

인터페이스는 객체에 다형성 부여
홍길동은 사람은 동물이고, 동물은 생물
홍길동은 그와 동시에 변호사이자, 음식싱겁게먹기모임에 일원
if문 개수를 줄여줌
규약을 정의하는데 용이함, 결국에 결합성을 낮춰줌
자동차가 특정 타이어와 규약없이 묶여있다면, 다른 타이어로 교체하기 힘들다. 다만 자동차가 특정 타이어를 모르고 타이어 규약만을 상대한다면 자동차에 표준규격을 따르는 모든 타이어를 교체해서 쓸 수 있음
호환성이 확보되어 상황에 따른 유연한 대처가 가능

인터페이스 2가지 의미 구분

자바
인터페이스 ⇒ 클래스와 대비되는 인터페이스
객체지향 , 패턴 책
인터페이스 ⇒ 상위타입 (추상, 인터페이스)