일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- Til
- 코테
- 연습문제
- mysql
- jpa blog
- 프로그래머스
- LV.02
- 알고리즘
- LV02
- 네트워크
- LV1
- LV01
- 디자인 패턴
- JPA
- LV03
- 이것이 자바다
- SQL
- 배열
- 포트 폴리오
- Java
- Redis
- LV0
- Spring Frame Work
- 포트폴리오
- 데이터 베이스
- docker
- CoffiesVol.02
- Join
- Lv.0
- 일정관리프로젝트
- Today
- Total
코드 저장소.
[이것이 자바다] Chpater06. 확인문제 본문
1.객체와 클래스에 대한 설명으로 틀린 것은 무엇입니까?
- 클래스는 객체를 생성하기 위한 설계도와 같은 것이다.
- new 연산자로 클래스의 생성자를 호출함으로써 객체가 생성된다.
- 하나의 클래스로 하나의 객체만 생성할 수 있다.
- 객체는 클래스의 인스턴스이다.
->답:3
2.클래스의 구성 멤버가 아닌것은 무엇입니까?
- 필드
- 생성자
- 메소드
- 로컬 변수
->답:4
3.필드,생성자,메소드에 대한 설명으로 틀린 것은 무엇입니까?
- 필드의 객체의 데이터를 저장한다.
- 생성자는 객체의 초기화를 담당한다.
- 메소드는 객체의 동작 부분으로, 실행 코드를 가지고 있는 블록이다.
- 클래스는 반드시 필드와 메소드를 가져야 한다.
->답:4
4.필드에 대한 설명으로 틀린 것은 무엇입니까?
- 필드는 메소드에서 사용할 수 있다.
- 인스턴스 필드 초기화는 생성자에서 할 수 있다.
- 필드는 반드시 생성자 선언 전에 선언되어야 한다.
- 필드는 초기값을 주지 않았더라도 기본값으로 자동 초기화된다.
->답:3
5.생성자에 대한 설명으로 틀린 것은 무엇입니까?
- 객체를 생성하려면 생성자 호출이 반드시 필요한 것은 아니다.
- 생성자는 다른 생성자를 호출하기 위해서 this()를 사용할 수 있다.
- 생성자가 선언되지 않으면 컴파일러가 기본 생성자를 추가한다.
- 외부에서 객체를 생성할 수 없도록 생성자에 private접근 제한자를 붙일 수 있다.
->답:1
6.메소드에 대한 설명으로 틀린 것은 무엇입니까?
- 리턴값이 없는 메소드는 리턴 타입을 void로 해야한다.
- 리턴 타입이 있는 메소드는 리턴값을 지정하기 위해 반드시 return문이 있어야 한다.
- 매개값의 수를 모를 경우 "..."를 이용해서 매개 변수를 선언할 수 있다.
- 메소드의 이름을 중복해서 선언할 수 없다.
->답:4
7.메소드 오버로딩에 대한 설명으로 틀린 것은 무엇입니까?
- 동일한 이름의 메소드를 여러 개를 선언하는 것을 말한다.
- 반드시 리턴 타입이 달라야 한다.
- 매개변수의 타입,수,순서를 다르게 선언을 해야한다.
- 매개값의 타입 및 수에 따라 호출될 메소드가 선택된다.
->답:2
8.인스턴스 멤버와 정적 멤버에 대한 설명으로 틀린 것은 무엇인가?
- 정적 멤버는 static으로 선언된 필드와 메소드를 말한다.
- 인스턴스 필드는 생성자 및 정적 블록에서 초기화될 수 없다.
- 정적 필드와 정적 메소드는 객체 생성 없이 클래스를 통해 접근할 수 있다.
- 인스턴스 필드와 메소드는 객체를 생성하고 사용해야 한다.
->답:2
9.final필드와 상수에 대한 설명으로 옳지 않은것은?
- final필드와 상수는 초기값이 저장되면 값을 변경할 수 없다.
- final필드와 상수는 생성자에서 초기화 될 수 없다.
- 상수의 이름은 대문자로 작성하는 것이 관례이다.
- 상수는 객체 생성 없이 클래스를 통해 사용할 수 있다.
->답:2
10.패키지에 대한 설명으로 틀린 것은 무엇입니까?
- 패키지는 클래스들을 크룹화시키는 기능을 한다.
- 클래스가 패키지에 소속되려면 패키지 선언을 반드시 해야 한다.
- import문은 다른 패키지의 클래스를 사용할 때 필요하다.
- mycompant 패키지에 소속된 클래스는 yourcompany에 옮겨 놓아도 동작한다.
->답:4
11.접근 제한에 대한 설명으로 틀린 것은 무엇입니까?
- 접근 제한자는 클래스,필즈,생성자,메소드의 사용을 제한한다.
- public 접근 제한은 아무런 제한 없이 해당 요소를 사용할 수 있게 한다.
- default 접근 제한은 해당 클래스 내부에서만 사용을 허가한다.
- 외부에서 접근하지 못하도록 하려면 private 접근 제한을 해야 한다.
->답:3
12.다음 클래스에서 해당 멤버가 필드,생성자,메소드 중 어떤 것인지를 빈칸을 채우시오.
public class Member{
private String name;->필드
public Member(String name){}->생성자
public void setName(String name){}->메소드
}
13.현실 세계의 회원을 Member클래스로 모델링하려고 합니다. 회원의 데이터로는 이름,아이디,패스워드,나이가 있습니다. 이 데이터들을 가지는 Member 클래스를 선언해보세요.
데이터 이름 | 필드 이름 | 타입 |
이름 | name | 문자열 |
아이디 | id | 문자열 |
패스워드 | password | 문자열 |
나이 | age | 정수 |
public class Memebr{
private String name;
private String id;
private String password;
private int age;
}
14.위에서 작성한 Member클래스에 생성자를 추가하려고 합니다. 다음과 같이 Member객체를 생성할 때 name필드와 id필드를 외부에서 받은 값으로 초기화하려면 생성자를 어떻게 선언해야 합니다?
Member1 user1 = new Member("홍길동","hong");
Member1 user2 = new Member("김자바","java");
public class Member{
private String name;
private String id;
private String password;
private int age;
public Member(String name,String id){
this.name = name;
this.id = id;
}
}
15.MemberService 클래스에 login()메소드와 logout()메소드를 선언한려고 한다. login()메소드를 호출할 때에는 매개값으로 id와password를 제공하고, logout()메소드는 id만 매개값으로 제공합니다. MemberService클래스와 login(),logout()메소드를 선언해보세요.
리턴타입 | 메소드 이름 | 매개변수 |
boolean | login | id(String),password(String) |
void | logout | id(String) |
public class MemberService{
//login
public boolean login(String id,String password){
if(id.equals("hong")&&password.equals("1234")){
return true;
}else{
return false;
}
}
//logout
public void logout(String id){
if(id.equals("hong")){
System.out.println("로그아웃 되었습니다.");
}
}
}
public class MemberServiceExample{
public static void main(Stirng[]args){
MemberService memberService = new MemberService();
boolean result = memberService.login("hong","1234");
if(result){
System.out.println("로그인 되었습니다.");
}else{
System.out.println("id 또는 password가 올바르지 않습니다.");
}
}
}
16.PrintExample 클래스에서 Printer객체를 생성하고 println()메소드를 호출해서 매개값을 콘솔에 출력하려고 합니다. println()메소드의 매개값으로 int,boolean,double,String값을 줄 수 있습니다. Printer클래스에서 println()메소드를 선언해보세요.
public class Printer{
public void print(int a){
System.out.println(a);
}
public void print(boolean a){
System.out.println(a);
}
public void print(double a){
System.out.println(a);
}
public void print(String a){
System.out.println(a);
}
}
17.16번 문제에서는 printer객체를 생성하고 println()메서드를 생성했습니다. printer객체를 생성하지 않고 printerexample클래스에서 다음과 같이 호출하려면 printer클래스를 어떻게 수정하면 될까요?
public class Printer{
public static void print(int a){
System.out.println(a);
}
public static void print(boolean a){
System.out.println(a);
}
public static void print(double a){
System.out.println(a);
}
public static void print(String a){
System.out.println(a);
}
}
18.ShopService 객체를 싱글톤으로 만들고 싶습니다. ShopServiceExample클래스에서 ShopService의 getInstance()메소드로 싱글톤을 얻을 수 있도록 ShopService클래스를 작성해보세요.
public class ShopService{
private static ShopService shopservice = new ShopService();
private ShopService(){}
static ShopSerivce getInstance(){
return shopservice;
}
}
19. 은행 계좌 객체인 Account객체는 잔고필드를 가지고 있습니다. balance필드는 음수값이 될 수 없고, 최대 백만원 까지만 저장할 수 있습니다. 외부에서 balance필드를 마음대로 변경하지 못하도록 하고, 0<=balance<=1000000범위의 값만 가질 수 있도록 Account클래스를 작성해보세요.
public class Account {
private int balance;
static final int MIN_BALANCE = 0;
static final int MAX_BALANCE = 1000000;
public int getBalance() {
return balance;
}
public void setBalance(int balance) {
if(MIN_BALANCE<=balance&&MAX_BALANCE>=balance) {
this.balance = balance;
}
}
}
20.BankApplication클래스의 메소드를 작성하시오.
import java.util.Scanner;
public class Account {
private String ano;
private String owner;
private int balance;
public Account(String ano, String owner, int balance) {
this.ano = ano;
this.owner = owner;
this.balance = balance;
}
public String getAno() {
return ano;
}
public void setAno(String ano) {
this.ano = ano;
}
public String getOwner() {
return owner;
}
public void setOwner(String owner) {
this.owner = owner;
}
public int getBalance() {
return balance;
}
public void setBalance(int balance) {
this.balance = balance;
}
}
import java.util.Scanner;
public class BankApplication {
private static Account[] accountArray = new Account[100];
private static Scanner scanner = new Scanner(System.in);
public static void main(String[] args) {
// TODO Auto-generated method stub
boolean run = true;
while(run) {
System.out.println("-----------------------------------------");
System.out.println("1.계좌생성 | 2.계좌목록 | 3.예금 | 4.출금 | 5.종료");
System.out.println("-----------------------------------------");
System.out.print("<선택>");
int selectNo = scanner.nextInt();
switch (selectNo) {
case 1:
createAccount();
break;
case 2:
accountList();
break;
case 3:
deposit();
break;
case 4:
withdraw();
break;
case 5:
run = false;
break;
}
}
System.out.println("프로그램 종료");
}
private static void createAccount() {
System.out.println("-----");
System.out.println("계좌생성");
System.out.println("-----");
System.out.print("계좌번호 : ");
String ano = scanner.next();
scanner.nextLine();
System.out.print("계좌주 : ");
String owner = scanner.next();
scanner.nextLine();
System.out.print("초기입금액 : ");
int balance = scanner.nextInt();
Account newAccount = new Account(ano, owner, balance);
for(int i=0;i<accountArray.length;i++) {
if(accountArray[i] == null) {
accountArray[i] = newAccount;
System.out.println("결과 : 계좌가 생성되었습니다.");
break;
}
}
}
private static void accountList() {
System.out.println("-----");
System.out.println("계좌목록");
System.out.println("-----");
for(int i=0;i<accountArray.length;i++)
{
Account account = accountArray[i];
if(account != null) {
System.out.print(account.getAno());
System.out.print(" ");
System.out.print(account.getOwner());
System.out.print(" ");
System.out.println(account.getBalance());
System.out.print(" ");
System.out.println();
}
}
}
private static void deposit() {
System.out.println("-----");
System.out.println("예금");
System.out.println("-----");
System.out.print("계좌번호 : ");
String ano = scanner.next();
scanner.nextLine();
System.out.print("예금액 : ");
int balance = scanner.nextInt();
scanner.nextLine();
Account account = findAccount(ano);
if(account==null) {
System.out.println("해당 계좌번호가 없습니다.");
return;
}
account.setBalance(account.getBalance()+balance);
System.out.println("결과 : 예금이 성공되었습니다.");
}
private static void withdraw() {
System.out.println("-----");
System.out.println("출금");
System.out.println("-----");
System.out.print("계좌번호 : ");
String ano = scanner.next();
scanner.nextLine();
System.out.print("예금액 : ");
int balance = scanner.nextInt();
scanner.nextLine();
Account account = findAccount(ano);
if(account==null) {
System.out.println("해당 계좌번호가 없습니다.");
return;
}
account.setBalance(account.getBalance()-balance);
System.out.println("결과 : 출금이 성공되었습니다.");
}
private static Account findAccount(String ano) {
Account account = null;
for(int i=0;i<accountArray.length;i++) {
if(accountArray[i] != null) {
String useAno = accountArray[i].getAno();
if(useAno.equals(ano)) {
account = accountArray[i];
break;
}
}
}
return account;
}
}
'Java' 카테고리의 다른 글
[이것이 자바다] Chapter.16 람다/스트림 연습문제 (0) | 2023.08.05 |
---|---|
[이것이 자바다] 챕터07 연습문제 (0) | 2023.03.15 |
[이것이 자바다] Chapter10장 예외 처리 (0) | 2023.02.20 |
[이것이 자바다] Chapter9장 중첩 클래스와 중첩 인터페이스 (0) | 2023.02.19 |
[이것이 자바다] Chapter8장 인터페이스 (0) | 2023.02.17 |