05. 다음 코드에는 문법적인 오류가 없다. (O,X)
public class Test05 {
public static void main(String[] args) {
Test05 s = new Test05();
}
}
07. 다음 코드에서 오류를 찾아 수정하시오.
class Util {
public double findPi() {
return 3.14;
}
}
public class MathTest {
public static void main(String[] args) {
Util u = new Util(); // 10 라인 u.findPi()에서 에러발생! u가 정의되지 않았다고 하여서
System.out.println(u.findPi()); // 위 메소드 호출을 재정의함!
}
}
08. 다음 코드의 실행 결과는?
class Sklass {
static int i;
Sklass() {
i++;
System.out.println(i);
}
}
class Oklass {
int i;
Oklass() {
i++;
System.out.println(i);
}
}
public class PrintTest {
public static void main(String[] args) {
new Sklass(); new Sklass(); Sklass s = new Sklass();
new Oklass(); new Oklass(); Oklass o = new Oklass();
System.out.printf("s.i = %d, o.i = %d",s.i,o.i );
}
}
예상 실행결과 : 2 2
실제 실행결과 : 3 1
틀린 이유: static 하고 non -static 차이를 정확하지 알지 못하였음
전역변수나 전역 함수는 static으로 클래스에 작성, non-static은 메인 메소드까지 전달되지 않아서 1로 변함이 없는 것 같다!!
09. 다음 코드에서 오류를 찾고, 그 이유를 설명하여라.
public class Student {
String name;
Student(String name) {
this.name = name;
}
Student() {
System.out.println("no argument");
this("no name");
}
}
이유: this는 첫 줄에 작성해야 하므로 System.out.println("no argument") 와 this("no name"); 자리를 바꿔주면 된다.
10. 다음 코드에서 오류를 찾아 수정하시오.
public class FooTest {
public static void main(String[] args) {
show();
}
public void show() {
System.out.println("show");
}
}
public void show() 라인에 static을 추가해야 메인 메소드에도 사용할 수 있다.
'JAVA' 카테고리의 다른 글
java #5 상속(업캐스팅, 다운캐스팅, intanceof, 오버라이딩, 추상메소드) (0) | 2021.05.03 |
---|---|
java #문제풀기2 객체문제 (0) | 2021.05.02 |
java #4 메소드, 가비지 컬렉션, 맴버의 접근, static, non-static (0) | 2021.04.30 |
java #3 클래스와 객체(객체 지향, 생성자, this) (0) | 2021.04.29 |
java #2 반복문과 배열 (0) | 2021.04.28 |