상속(Inheritance) 자식 클래스가 부모 클래스의 기능을 그대로 물려받을 수 있는 기능 아래 코드처럼 상속을 이용하기 위해서는 extends 키워드를 사용 상속의 장점 기존에 작성된 클래스 재활용 중복 코드 작성 안해도 됨 클래스 간의 계층적 관계를 구성함으로써 다형성 토대가 됨 자바의 상속 방식 다단계 상속 및 계층적 상속을 지원, 다중 상속은 지원X 하지만, interface를 통해서 다중 상속과 유사한 형태의 상속 기능 제공 package 상속기본0113; public class BasicInheritance { public static void main(String[] args) { HouseDog houseDog = new HouseDog(); houseDog.setName("백호"); ..
package 아이패드만들기0112; public class IPadProMain { public static void main(String[] args) throws InterruptedException { while(true) { IPadProMake iPad = new IPadProMake("iPad Pro"); if(!iPad.continueOrder()) break; iPad.setScreen(); iPad.setColor(); iPad.setMemory(); iPad.setNetwork(); iPad.setName(); iPad.setSerialNum(); iPad.inProductPad(); iPad.productPad(); } } } package 아이패드만들기0112; import jav..
문제 정수 7개를 입력 받아 홀수와 짝수를 분류해 출력하기 입력 정수 : 1 2 6 8 4 25 50 출력 홀수 : 1 25 짝수 : 2 6 8 4 50 첫번째 방법(배열) package 홀수짝수나누어담기0112; public class OddEvenMain { public static void main(String[] args) { OddEvenSeparator ex = new OddEvenSeparator(); ex.inputArray(); ex.separatorArray(); ex.printArray(); } } package 홀수짝수나누어담기0112; import java.util.Scanner; public class OddEvenSeparator { int[] inputArr = new int..
메소드 오버로딩(method overloading) 같은 이름의 메소드를 중복하여 정의하는 것 물론 한 클래스 내에 같은 이름의 메소드를 둘 이상 가질 수 없으나 매개변수의 변수 개수나 타입을 다르게 하면, 하나의 이름으로 메소드를 작성할 수 있음. 이러한 메소드 오버로딩은 객체 지향 프로그래밍 특징 중 하나인 '다형성(polymorphism)'을 구현하는 방법 중 하나!!! 쉽게 이해하기 위해... 메소드 오버로딩 대표적인 예로 println()을 들 수 있음. 1. println() 2. println(boolean x) 3. println(char x) 4. println(char[] x) 5. println(double x) 6. println(float x) 7. println(int x) 8...
this 참조 변수 this 참조 변수는 인스턴스가 바로 자기 자신을 참조하는데 사용하는 변수.. 따라서 this 참조 변수는 해당 인스턴스의 주소를 가리킴. * 생성자의 매개변수 이름과 인스턴스 변수의 이름이 같을 때 인스턴스 변수 앞에 this.을 붙여서 구분 (this 안붙이면 컴파일러가 구분 못 함) 모든 인스턴스 메소드에는 this 참조 변수가 숨겨진 지역변수로 존재함! this() 메소드 - 다른 생성자 호출 생성자 오버로딩이 많아질 경우 생성자 간의 중복코드가 발생할 수 있음. this() 메소드는 생성자 내부에서만 사용 가능하며, 같은 클래스의 다른 생성자를 호출할 때 사용함. this() 메소드에 인수를 전달하면, 일치하는 생성자를 찾아서 호출해 줌!! class Car { private..
문제 소수란?? 1과 자기자신 이외에는 나누어 지지 않는 수 정수 값을 입력 받아, 입력 받은 정수값 미만의 소수의 합을 구하라. 입력 12 출력 28 package 소수판별하기문제0111; import java.util.Scanner; public class PrimeEx1 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.print("정수 입력 : "); int num = sc.nextInt(); int sum = 0; // 입력 받은 정수 미만의 소수의 합 누적 // 반복문 수행 : 입력 받은 정수 미만의 값으로 메소드 호출 ( 12 => 2 ~ 11) for(int i = 2; i < ..
문제 극장의 좌석은 총 10개 좌석당 가격은 12,000원 메뉴는 [예약하기], [종료하기]로 구성 [예약하기]를 누르면 현재 좌석의 예약 상태를 보여주고 예약을 받음 [종료하기]를 누르면 판매된 좌석의 갯수를 확인해서 판매 금액을 출력 package 영화티켓예매; import java.util.Scanner; public class TicketMain { public static void main(String[] args) { TicketReservation movie = new TicketReservation(); Scanner sc = new Scanner(System.in); while(true) { System.out.println("[1]예약하기"); System.out.println("[2]..
package TV만들기; public class TvMain { public static void main(String[] args) { TvInfo samsung = new TvInfo(); samsung.setON(true); samsung.getTV(); samsung.setChannel(); samsung.setVolume(); samsung.getTV(); } } package TV만들기; import java.util.Scanner; public class TvInfo { private boolean isON; private int channel; private int volume; TvInfo(){ isON = false; channel = 7; volume = 15; } TvInfo(bo..
생성자(constructor) 클래스를 객체로 만들때 자동으로 호출(=new를 호출할 때)되며, 생성자는 인스턴스 필드를 초기화 함. 생성자는 인스턴스 필드를 초기화하는 것이 목적임. 생성자 생성 규칙 생성자는 클래스 이름과 같아야 함. 반환타입 없고 접근제한자만 올 수 있으나 private은 특별한 경우가 아니면 사용 안 함. 하나의 클래스는 여러개의 생성자를 가질 수 있음. 단, 오버로딩 생성 규칙에 맞아야 함. 오버로딩 규칙 데이터 타입이 같아도 갯수가 다르면 가능 데이터 타입이 같고 갯수가 같을 경우, 변수명이 달라도 소용없음. 오버로딩에 대해서는 메소드에서 자세히 다룰 예정 package 생성자기본연습0111; public class ConstructorEx { public static void..
PC방에 컴퓨터가 총 100대 있습니다. 손님들은 모두 자기가 앉고 싶어하는 자리가 있습니다. 만약 자기가 앉고 싶어하는 자리에 다른 손님이 있으면 거절을 해야하고, 아니면 자리 사용을 허가 합니다. 입력 손님의 수 : 3 손님이 앉고 싶어 하는 자리 번호 : 1 1 5 출력 거절 횟수 : 1 package PC방알바문제; import java.util.Scanner; public class PcRoom { public static void main(String[] args) { int[] pcRoom = new int[100]; int seat; int cnt = 0; Scanner sc = new Scanner(System.in); System.out.print("손님 수 : "); int n = s..