1.
class Vehicle {
Vehicle() {
System.out.println("Vehicle");
}
}
class Bus extends Vehicle {
Bus() {
System.out.println("Bus");
}
}
public class Transport {
public static void main(String[] args) {
Vehicle v = new Bus();
}
}
- 생성자 호출
- 객체를 생성할 때 자동으로 호출됨
- 생성자 호출을 막으려면 객체를 생성하지 않아야 함.
- 생성자는 호출을 안 하고 객체를 생성하는 방법은 XX (Java는 기본적으로 생성자를 반드시 호출해야만 객체를 생성할 수 있게 설계되어 있음.)
- 일반 메서드 호출
- 객체를 생성한 후, 명시적으로 메서드를 호출해야 실행됨.
- 객체를 생성했다고 해서 일반 메서드가 자동으로 실행되는 일은 없음.
2.
int price = 1000;
int qty = 2;
String grade = "2";
double discount = 0.0;
switch (grade) {
case "1":
discount = price * 0.1;
break;
case "2":
discount = price * 0.5;
continue; // 핵심
default:
System.out.println("Thank You!");
}
System.out.println(discount);
switch 문에서 case 블록에 break가 없을 경우, 다음 블록으로 계속 진행. 반복문은 아니지만,
switch-case는 **연속적인 흐름(flow)**을 가지고 있어서, 명시적으로 break를 써주지 않으면
아래로 "떨어져서 실행(fall-through)"
만약 default가 grade case "2"보다 위에 있다면 호출되지 않음
3.
A. It is invoked by JRE (OOO) 정덥!
B. It is a final method >> final로 선언되지 않아도 됨
C. It returns true if it is executed successfully at run time
>> main() 메서드는 항상 void 반환형을 가져야 하므로 값을 반환하지 않습니다.
D. It must be defined within a public class
>> : main() 메서드는 public static void main(String[] args) 형태로 정의되어야 하지만, 해당 메서드가 꼭 public class 내부에 정의될 필요는 XXXX
4.
indexOf(String str, int fromIndex) 메서드는 지정된 문자열 str이 주어진 문자열 내에서 시작되는 위치를 반환
검색은 fromIndex에서 시작
5.
// Product 클래스: 상품 정보를 담는 클래스
class Product {
String name; // 상품 이름
Double price; // 상품 가격
}
// Cart 클래스: 장바구니 정보를 담는 클래스
class Cart {
Product p; // 장바구니에 담긴 상품
double totalAmount; // 총 금액
}
// Shop 클래스: main 메서드를 포함한 실행 클래스
public class Shop {
public static void main(String[] args) {
// Cart 객체 생성
Cart c = new Cart();
// Cart 객체의 필드 출력
System.out.println(c.p + ":" + c.totalAmount);
}
}
만약 Cart 객체를 만들었을때 c.p를 초기화 하고 싶다면
public Cart(Product p, double totalAmount) {
this.p = p;
this.totalAmount = totalAmount;
}
이런식으로 생성자를 만들어 주어 초기화를 시켜야함.
>>> 초기화 되지 않았기 때문에 null:0.0 출력
6.
반복문은 메서드 내부에서만 사용가능!!!!!
클래스 수준에서는 직접적인 실행 블록(for, while, if 등)을 작성할 수 XXXX
7.
package p1;
public class App {
public static void main(String[] args) {
System.out.println("Java");
}
}
package p1.p2;
public class Test {}
- A. The App.class file is stored within the p1 folder. The Test.class file is stored within the p2 sub-folder of p1.
>>>>>선택지 A에서는 App.class, Test.class와 같은 **컴파일된 파일(class 파일)**
→ **문제에서는 소스 코드(.java 파일)**를 기준 - B. The App class is accessible within the Test class without an import statement.
>>> import p1.App을 추가 - C. import p1.App; is used to access the App class within the Test class. OOOO
- D. It is optional to have the package statement as the first line of class definitions.
>>>>> 패키지 선언은 파일의 첫 번째 줄에 있어야 함
8.
Predicate란?
Java의 Predicate<T>는 조건을 평가하고 Boolean 값을 반환하는 함수형 인터페이스
- 람다식 (n) -> n % 2 == 0;는 숫자가 짝수인지 확인하는 조건
- .test(T t) 메서드를 사용하여 조건을 평가하고, 결과로 true 또는 false를 반환
Predicate<Integer> p = (n) -> n % 2 == 0;
p.test(100) → 100 % 2 == 0이므로 true를 반환
p.test(101) → 101 % 2 == 0이 아니므로 false를 반환
'Certification > OCAJP' 카테고리의 다른 글
OCAJP 복습(1) (1) | 2024.12.05 |
---|---|
OCAJP 준비 (Q219 - Q236) (1) | 2024.11.28 |
OCAJP 준비 (Q177 - Q200) (0) | 2024.11.26 |
OCAJP 준비 (Q166 - Q176) (0) | 2024.11.25 |
OCAJP 준비 (Q146 - Q165) (0) | 2024.11.21 |