JAVA
1번
💡 클래스 내부 : 속성, 메서드, 생성자, 내부 클래스
💡 클래스 외부 : 패키지, 임포트, 외부 클래스
2번
💡 참조변수 a를 선언하고 클래스 A의 객체를 생성하시오
1
A a = new A();
💡 객체 내부의 필드 m에 값 5를 대입하시오
1
a.m = 5;
💡 필드 m의 값을 콘솔에 출력하세요
1
System.out.print(a.m);
💡 메서드 method()를 호출하시오
1
a.method();
3번
💡 클래스 A가 다음과 같이 정의돼 있을 때 다음 코드에 출력 값을 쓰시오
1
2
3
4
5
6
7
8
9
10
11
12
class A {
boolean a;
int b;
double c;
String d;
void abc() {
System.out.println(b + c);
System.out.println(c + d);
System.out.println(d + a);
}
}
1
2
3
4
5
6
7
false
0
0.0
null
0.0
0.0null
nullfalse
4번
💡 4가지 형태로 오버로딩된 print() 메서드의 실행 결과가 다음과 같이 출력되도록 클래스 A를 완성하시오
5번
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class A {
void print() {
System.out.println("입력값이 없습니다");
}
void print(int a) {
System.out.println("정수 입력값 : "+a);
}
void print(double a) {
System.out.println("실수 입력값 : "+a);
}
void print(String a) {
System.out.println("문자열 입력값 : "+a);
}
}
💡 다음과 같이 4가지 방법으로 arraySum 메서드를 호출할 때 오류가 발생하는 코드와 이유를 설명하시오
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class A {
int arraySum(int[] array) {
int sum = 0;
for(int i = 0; i < array.length; i++) {
sum += array[i];
}
return sum;
}
}
A a = new A();
int[] data1 = new int[] {1, 2, 3};
int[] data2 = {1, 2, 3};
System.out.println(a.arraySum(data1));
System.out.println(a.arraySum(data2));
System.out.println(a.arraySum(new int[] {1, 2, 3}));
System.out.println(a.arraySum({1, 2, 3})); // 오류 배열을 직접 전달할 때는 {}로 할 수 없다
6번
💡 다음 코드에 출력 값을 쓰시오
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class A {
void abc(int m) {
m = 8;
}
void bcd(int[] n) {
n[0] = 4;
n[1] = 5;
n[2] = 6;
}
}
A a = new A();
int m = 5;
int[] n = {1, 2, 3};
a.abc(m);
a.bcd(n);
System.out.println(m);
System.out.println(Arrays.toString(n));
1
2
5
[4, 5, 6]
7번
💡 다음 코드에 실행 결과에 맞게 class A를 완성하자
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class A {
void averageScore(double... scores) {
double sum = 0;
for (double score : scores) {
sum += score;
}
double average = sum / scores.length;
System.out.println(average);
}
}
A a = new A();
a.averageScore(1);
a.averageScore(1, 2);
a.averageScore(1, 2, 3);
a.averageScore(1, 2, 3, 4);
1
2
3
4
1.0
1.5
2.0
2.5
8번
💡 다음 class A가 가진 각각의 생성자를 이용하여 객체를 생성하시오
1
2
3
4
5
6
7
8
9
class A {
A(int k) {
}
A(double a, double b) {
}
}
A a1 = new A(0);
A a2 = new A(1.0, 2.0);
💡 다름 코드에 출력 결과를 쓰시오
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class A {
int m = 3;
int n = 5;
void abc(int m, int n) {
m = this.m;
n = n;
}
}
A a = new A();
a.abc(7, 8);
System.out.println(a.m);
System.out.println(a.n);
1
10번
💡 class A에 있는 a, b, c, d가 모두 5가 되도록 코드를 한줄만 추가하시오
1
2
3
4
5
6
7
8
9
10
11
12
class A {
int a, b, c, d;
A() {
a = b = c = d = 5;
}
A(int k) {
a = k;
b = k;
c = k;
d = k;
}
}
11번
💡 패키지를 사용하는 2가지 이유를 쓰시오
💡 클래스의 이름 충돌 방지, 접근 제어
12번
1
2
3
4
5
6
package pack01;
public class A {
public int m = 3;
public int n = 5;
}
1
2
3
4
5
6
7
package pack02;
public class B {
A a = new A(); // 오류
System.out.println(a.m);
System.out.println(a.n);
}
💡 임포트를 사용하지 않고 class B를 수정하시오
1
2
3
4
5
6
7
package pack02;
public class B {
pack01.A a = new pack01.A();
System.out.println(a.m);
System.out.println(a.n);
}
💡 임포트를 사용하여 class B를 수정하시오
1
2
3
4
5
6
7
8
package pack02;
import pack01.A;
public class B {
A a = new A();
System.out.println(a.m);
System.out.println(a.n);
}
13번
💡 클래스 내부에 올 수 있는 구성 요소들에 사용할 수 있는 접근 지정자를 범위가 큰 순서대로 쓰시오
💡 public
protected
default
private
14번
💡 각 클래스 위치에서 사용할 수 있는 모든 필드를 쓰시오
1
2
3
4
5
6
7
8
9
10
11
12
13
public class A {
public int a;
protected int b;
int c;
private int d;
void abc() {
System.out.println(this.a);
System.out.println(this.b);
System.out.println(this.c);
System.out.println(this.d);
}
}
1
2
3
4
5
6
7
8
9
10
package pack01;
public class B {
void bcd() {
A a = new A();
System.out.println(a.a);
System.out.println(a.b);
System.out.println(a.c);
}
}
1
2
3
4
5
6
7
8
9
package pack02;
import pack01.A
public class C {
void cde() {
A a = new A();
System.out.println(a.a);
}
}
1
2
3
4
5
6
7
8
9
package pack02;
import pack01.A
public class D extends A {
void def() {
System.out.println(this.a);
System.out.println(this.c);
}
}