문제

1. 아래 내용의 메서드 호출 부분을 작성하세요.
2. Data클래스의 staticCall, instanceCall 메서드에서 주석 처리 된 부분중 접근이 가능한 부분은 주석 해제를 수정하세요.

 

// Main 클래스

package static2.quiz;

public class Main {

    public static void main(String[] args) {
        


        // Data클래스 staticCall 정적 메서드 호출


        // Data클래스 instanceCall 인스턴스 메서드 호출
    }

}
// Data 클래스

package static2.quiz;

public class Data {
    private int instanceValue;
    private static int staticValue;

    public static void staticCall() {
        //instanceValue++;
        //instanceMethod();

        //staticValue++;
        //staticMethod();
    }

    public void instanceCall() {
        //instanceValue++;
        //instanceMethod();

        //staticValue++;
        //staticMethod();
    }

    public static void staticMethod() {
        System.out.println("staticValue = " + staticValue);
    }

    public void instanceMethod() {
        System.out.println("instanceValue = " + instanceValue);
    }
}

 

'자바 문제 > 실습' 카테고리의 다른 글

제네릭 실습 문제  (0) 2024.07.30
다형성 실습 문제  (0) 2024.07.24
상속 실습 문제  (0) 2024.07.22
static 1  (0) 2024.07.15
접근제어자  (0) 2024.07.10

static 변수에 대한 설명으로 틀린것은?(중복허용)
1. 멤버 변수에 static을 붙이게 되면 static 변수, 정적 변수, 클래스 변수라 한다.
2. static이 붙은 멤버 변수는 힙 영역에서 관리한다.
3. static 변수에 접근하기 위해서는 인스턴스명.static변수명과 같이 접근하는 것을 권장한다.
4. 한 클래스에서 공통적인 값을 유지해야할때 사용한다.
5. A클래스의 static변수는 A클래스의 인스턴스가 생성된 수 만큼 존재한다.

 

정답)
2, 3, 5

static 메서드에 대한 설명으로 틀린것은? (중복허용)
1. static메서드 내부에 선언된 변수는 static 변수이다.
2. static메서드 내부에서 this 키워드를 사용할 수 없다.
3. static메서드 내부에서 인스턴스 변수를 사용할 수 없다.
4. static메서드 내부에서 다른 static 메서드를 호출할 수 있다.
5. static메서드 내부에서 인스턴스 메서드를 호출할 수 있다.

 

정답)
1, 5


정적 변수, 지역 변수, 인스턴스 변수에 저장되는 영역(메서드, 스택, 힙)과 제거 시기를 설명하시오

 

정답)
지역 변수 : 스택 영역에 저장되고 메서드가 종료되면 제거된다.
인스턴스 변수 : 힙 영역에 저장되고 객체가 더 이상 사용되지 않거나 참조되지 않으면 가비지 컬렉터가 해당 객체를 회수하며 이때 인스턴스 변수가 소멸됌
정적변수 : 메서드 영역의 static영역에 보관되고 자바 프로그램이 종료될때 제거된다.

'자바 문제 > 이론' 카테고리의 다른 글

제네릭 이론 문제1  (0) 2024.07.31
추상클래스 이론 문제  (0) 2024.07.24
instanceof 이론 문제  (0) 2024.07.23
상속 이론 문제  (0) 2024.07.17
접근제어자  (0) 2024.07.11

문제

- 메인함수 실행시 data1, data2, data3의 id값이 1씩 들어가고 있다.

- 메인함수에서 Data클래스의 인스턴스를 생성시 Id값이 1씩 증가하여 값이 들어가게 하고 싶음
- static 키워드를 사용하여 아래의 출력 예시처럼 나오도록 수정해주세요

 

출력 예시

data1.Id = 1
data2.Id = 2
data3.Id = 3

 

// Main클래스

package ex2.quiz;

public class Main {
    public static void main(String[] args) {
        Data data1 = new Data("A");
        System.out.println("data1.Id = " + data1.Id); // data1.Id = 1

        Data data2 = new Data("B");
        System.out.println("data2.Id = " + data2.Id); // data2.Id = 1

        Data data3 = new Data("C");
        System.out.println("data3.Id = " + data3.Id); // data3.Id = 1

    }
}

 

// Data 클래스

package ex2.quiz;

public class Data {
    public String name;
    public int Id;

    public Data(String name) {
        this.name = name;
        this.Id++;
    }
}

 

'자바 문제 > 실습' 카테고리의 다른 글

제네릭 실습 문제  (0) 2024.07.30
다형성 실습 문제  (0) 2024.07.24
상속 실습 문제  (0) 2024.07.22
static 2  (0) 2024.07.17
접근제어자  (0) 2024.07.10

문제1)

다음 중 접근제어자에 대한 설명으로 올바르지 않은 것은 무엇입니까?(중복허용)

 

1. 멤버변수 선언시 접근 제어자는 여러 개 사용 가능하다.

2. 메서드 선언시 접근 제어자를 생략하면 자동으로 public으로 지정된다.

3. default 접근제어자는 모든 패키지의 클래스에서 접근 가능하다.

4. 클래스 내부에 선언된 멤버변수와 메서드를 외부로 부터 보호하기 위해 사용한다.

 

정답) 

1, 2, 3

 

 

문제2)

private와 public에 접근 범위를 작성하시오

 

정답)

private : 같은 클래스 내에서만 접근 가능
public : 모든 곳에서 접근 가능

 


문제3)

캡슐화란 무엇인지 작성하시오

 

정답)

A객체 내부의 속성이나 기능을 하나의 캡슐로 만들어 B객체에서 직접 접근할 수 없게 하는 것이다.

'자바 문제 > 이론' 카테고리의 다른 글

제네릭 이론 문제1  (0) 2024.07.31
추상클래스 이론 문제  (0) 2024.07.24
instanceof 이론 문제  (0) 2024.07.23
상속 이론 문제  (0) 2024.07.17
static  (0) 2024.07.15

문제

- Customer 객체는 자신의 멤버변수와 멤버메서드에만 접근해야한다.
- requestAccountOpening메서드 이외에는 Customer객체는 Bank클래스 내부의 기능을 사용하거나 속성값을 변경할 수 없다.
- 아래 출력 예시와 같이 나오도록 Main클래스와 Bank클래스의 코드를 수정하세요.

 

출력 예시

customer.bankName : 국민은행
customer.balance : 10
customer.accountNumber : 100020003000

 

// Main 클래스

package access.quiz;

public class Main {
    public static void main(String[] args) {

        // 요청사항 확인후 불가능한 코드는 삭제하세요.
        Customer customer = new Customer("kjs");
        customer.bankName = "신한은행";
        customer.balance = 111110;
        customer.accountNumber = 1002132444;
        customer.bankOpenTime = 5;
        customer.bankCloseTime = 20;
        customer.isOpen();
        customer.makeAccountNumber();
        customer.checkAccountType("적금");
        customer.requestAccountOpening(10, "국민은행", "적금");


        System.out.println("customer.bankName : " + customer.bankName);
        System.out.println("customer.balance : " + customer.balance);
        System.out.println("customer.accountNumber : " + customer.accountNumber);

    }
}

 

// Customer

package access.quiz;

public class Customer extends Bank {

    public String name;

    public Customer(String name) {
        //super();
        this.name = name;
    }

    public void requestAccountOpening(int balance, String bankName, String accountType) {
        super.createAccount(balance, bankName, accountType);
        System.out.println("계좌 개설 완료되었습니다.");
    }
}

 

// Bank 클래스

package access.quiz;

public class Bank {

    public int balance;
    public String bankName;
    public int accountNumber;
    public int bankOpenTime = 9;
    public int bankCloseTime = 16;


    // 계좌 개설
    public void createAccount(int balance, String bankName, String accountType) {
        isOpen();
        checkAccountType(accountType);
        setBankName(bankName);
        makeAccountNumber();
    }

    // 영업시간 여부 확인
    public boolean isOpen() {
        int nowTime = 10;
        return bankOpenTime < nowTime && bankCloseTime > nowTime ? true : false;
    }

    // 계좌 종류 확인
    public void checkAccountType(String type) {
    }

    // 계좌번호 생성
    public void makeAccountNumber() {
    }

    // 은행명 설정
    public void setBankName(String bankName) {
    }


}

 

'자바 문제 > 실습' 카테고리의 다른 글

제네릭 실습 문제  (0) 2024.07.30
다형성 실습 문제  (0) 2024.07.24
상속 실습 문제  (0) 2024.07.22
static 2  (0) 2024.07.17
static 1  (0) 2024.07.15

+ Recent posts