IT 면접 족보31

권단비·2023년 2월 9일
0

IT

목록 보기
65/139

1. 아래가 돌아 가도록 하시오

interface ICalculator{
	public abstract int add(int num,int num2);
	public abstract int sub(int num,int num2);
	public abstract int mul(int num,int num2);
	 int div(int num,int num2);
}

class PrintableInterface {
    public static void main(String[] args) {
    	ICalculator calculator = new MyCalculator();
    	System.out.println(calculator.add(10, 20)); //30
    	System.out.println(calculator.sub(10, 20)); //-10
    	
    	//Printable prn = new Printer();
        //prn.print("Hello Java");
    }
}

▼정답

interface ICalculator { // I = interface를 뜻함.
	public abstract int add(int num, int num2);
	public abstract int sub(int num, int num2);
	public abstract int mul(int num, int num2);
	int div(int num, int num2);
}
class MyCalculator implements ICalculator {
	@Override
	public int add(int num, int num2) {
		return num + num2;
	}
	@Override
	public int sub(int num, int num2) {
		return num - num2;
	}
	@Override
	public int mul(int num, int num2) {
		return num * num2;
	}
	@Override
	public int div(int num, int num2) {
		return num / num2;
	}
}
public class InterFace {
	public static void main(String[] args) {
		ICalculator calculator = new MyCalculator();
		System.out.println(calculator.add(10, 20));
		System.out.println(calculator.sub(10, 20));
		System.out.println(calculator.mul(10, 20));
		System.out.println(calculator.div(10, 20));

	}
}

2. 아래가 돌아 가도록 하시오.

 interface Printable {
    public abstract void print(String doc) ;
}
main(){
    	Printable prn = new Printer();
        prn.print("Hello Java");
}

▼정답

interface Printable {
	void print(String doc);
}
class Printer implements Printable { // implements : interface를 구현한다.
	@Override
	public void print(String doc) {
		System.out.println(doc);
	}
}
public class InterFace {
	public static void main(String[] args) {
		Printable prn = new Printer();
		prn.print("Hello Java");
	}
}

3. 애너테이션이란?

▼정답

주석처럼 프로그램에 영향을 미치지 않으면서, 유용한 정보를 제공하는 것
애너테이션 자체가 하나의 기능(함수역할을 함)이 들어가는 경우가 많음
@Override

4. 아래의 연산과정에서 호출되는 함수(원리)를 써서 표현해 보세요.

String str = "age: " + 17;
▼정답

[결과]age: 17

1.String s = String.valueOf(x);
2.return (obj == null) ? "null" : obj.toString();
obj에 "age: " + 17;이 대입되었기에 toString형으로 바뀜

5. Object 클래스에 대하여 설명하시오.

▼정답

Object = 공통적으로 사용될 만한 함수(11개)를 부모로 올림
스레드 관련 5개 빼고, 오버라이딩 자주 사용하는 3개 - toString / hashCode / equals
부모로 올리면 다형성과 오버라이딩 활용 가능
모든 클래스는 Object를 상속한다.

6.아래와 같이 출력되는 이유를 설명하시오.

class A{

}

public class Test {
	public static void main(String[] args) {
		A a = new A();
		System.out.println(a); // a의 주소 뿌림
	}
}

▼정답

Object에서 호출해온다.
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
toHexString : 16진수로 뿌리는 hasCode() 주소값

7. interface 에 대하여 설명하시오.

▼정답

1. interface = 상수와 + abstract(추상)함수(바디가 없는 함수)
2. interface에는 변수가 올 수 없다.
인터페이스(interface) = 자손이 구현하라. (갑(의뢰)→을(구현))

2개 이상의 클래스를 상속받을 수 있다.
예시)
class C implements A, B{}

0개의 댓글