일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Java#JAVA#매개변수
- 국비지원JAVA#국비지원자바#프로그랭#JSP#국비지원JSP#국비교육JSP#웹개발자#코딩
- 프로그래밍
- java
- db#데이터베이스#오라클#sql
- Java#컴파일러#자바컴파일러#
- Spring#spring#스프링#스프링프레임워크#스프링의존성주입#스프링생성자#스프링기본#국비지원#국비교육#국비지원스프링
- IntelliJ#인텔리제이#인텔리#단축키
- 국비지원자바#국비교육자바#국비지원java#국비교육java#자바스크립트#프론트엔드
- 국비지원#국비교육#국비지원자바#국비교육자바#css#HTML#JAVA
- 항해99 #항해플러스 #주니어개발자 #주니어개발자역량강화 #주니어개발자멘토링 #개발자사이드프로젝트 #코딩부트캠프 #코딩부트캠프후기
- 국비지원#국비교육
- #
- Resource #
- 개발자도서#개발자책#도메인#DDD#도메인주도개발시작하기#개발스터디#
- 개발자#it도서#도메인#DDD#ddd
- 자바#Java#배열예시#연습#기초다지기
- Java#java#자바#다오#디티오#브이오#dao#dto#vo
- 자바
- spring#Spring#RequestBody#ResponseBody
- Spring#spring#스프링#스프링프레임워크#스프링자동주입#스프링생성자#스프링기본#국비지원#국비교육#국비지원스프링
- 국비지원JAVA#국비교육JAVA#국비지원자바#국비교육자바#JSP#SERVLET#서블릿#
- 항해플러스#항해#항해플러스3기#회고
- tibero#티베로#이중화#failvover
- Java#java#메모리영역#클래스로더#가비지컬렉터
- html#HTML#프론트엔드#개발자#코딩#국비지원#국비교육#국비지원프론트엔드#국비지원HTML#국비지원html#국비프론트엔드
- 쿼리스트링#쿼리문자열#바인딩
- 국비지원JAVA
- Java#정처기#비트연산자#정보처리기사
- #java#JAVA#프로그래밍#웹개발자
- Today
- Total
개린이 개발노트
국비지원 JAVA(자바) 프로그래밍 (메서드호출,오버라이딩,상속, 트라이캐치,집합,Thread,스트림) 본문
국비지원 JAVA(자바) 프로그래밍 (메서드호출,오버라이딩,상속, 트라이캐치,집합,Thread,스트림)
개린이9999 2022. 12. 9. 08:08
자바 연습문제
Mytv 라는 서브클래스에 메서드를 만들고 메인클래스에서 메서드 호출하여 코딩하기
package 연습;
public class MyTv {
boolean isPowerOn;
int channel;
int volume;
final int MAX_VOLUME = 100;
final int MIN_VOLUME = 0;
final int MAX_CHANNEL = 100;
final int MIN_CHANNEL = 1;
void turnOnOff() {
// (1) isPowerOn의 값이 true면 false로, false면 true로 바꾼다
isPowerOn = !isPowerOn;
}
void volumeUp() {
// (2) volume의 값이 MAX_VOLUME보다 작을 때만 값을 1증가시킨다
if (volume < MAX_VOLUME)
volume++;
}
void volumeDown() {
// (3) volume의 값이 MIN_VOLUME보다 클 때만 값을 1감소시킨다
if (volume > MIN_VOLUME)
volume--;
}
void channelUp() {
// (4) channel의 값을 1증가시킨다
// channel이 MAX_CHANNEL이면, channel의 값을 MIN_CHANNEL로 바꾼다
if (channel == MAX_CHANNEL) {
channel = MIN_CHANNEL;
} else {
channel++;
}
}
void channelDown() {
// (5) channel의 값을 1감소시킨다
// channel이 MIN_CHANNEL이면, channel의 값을 MAX_CHANNE로 바꾼다
if (channel == MIN_CHANNEL) {
channel = MIN_CHANNEL;
} else {
channel--;
}
}
}
package 연습;
public class TvMain {
public static void main(String[] args) {
MyTv t = new MyTv();
t.channel = 100;
t.volume = 0;
System.out.println("CH:"+t.channel+",VOL:"+t.volume);
t.channelDown();
t.volumeDown();
System.out.println("CH:"+t.channel+",VOL"+t.volume);
t.volume = 100;
t.channelUp();
t.volumeUp();
System.out.println("CH:"+t.channel+",VOL:"+t.volume);
}
}
1. 부모의 메서드와 이름이 같아야 한다 - O
2.매개변수의 수와 타입이 모두 같아야한다. -O
(매개변수의 개수랑 데이터타입이 다르면-> 오버로딩)
3. 접근 제어자는 부모의 메서드보다 좁은 범위로만 변경할 수 있다-X
반대! 부모클래스(메서드)->상속-> 자식클래스(메서드)
Public->Protected->default->private
동일클래스내에서 오버라이딩을 하고싶으면 오버로딩도 같이 해야함
오버라이딩 하려면 상속받은 클래스에서만 할 수있음.
4. 부모의 메서드보다 더많은 수의 예외를 선언할 수 있다.-x
예외선언 try-catch 더많은 캐치를 쓸 수 있냐
부모보다 더많이 작성 못함!!
이름 같음, 매개변수 같음, 리턴타입도 같아야함(기본조건)
오버로딩: 위에 매개변수나 그런것들이 바뀜 (동일클래스에서 여러개 만들수있음)
오버라이딩: 안에 내용물이 바뀜(동일클래스에서 여러개 못만듦)
package 자바연습;
public class Buyer {
int money = 1000;
Product[] cart = new Product[3]; // 구입한 제품 저장 배열
int i = 0; // cart배열 변수에 사용될 인덱스
void buy(Product p) {
// 1. 가진 돈과 물건의 가격을 비교해서 가진 돈이 적으면 메서드 종료
if (money < p.price) {
System.out.println("잔액이 부족하여 " + p + "를 살수 없습니다.");
return;
}
// 2. 가진 돈이 충분하면 제품의 가격을 가진 돈에서 뺌
money = money - p.price;
// 3. 장바구니에 구입한 물건을 담는다 ( add메서드 호출 )
add(p);
}
void add(Product p) {
// 1. i 값이 장바구니 크기보다 같거나 크면?
if (i >= cart.length) {
// 1-1. 기존 장바구니보다 2배 큰 새로운 배열을 생성
Product[] temp = new Product[cart.length * 2];
// 1-2. 기존 장바구니의 내용을 새로운 배열에 복사
System.arraycopy(cart, 0, temp, 0, cart.length);
// 1-3. 새로운 장바구니와 기존 장바구니를 교체
cart = temp;
}
// 2. 물건을 장바구니(cart)에 저장, 그리고 i 증가
cart[i] = p;
i++;
}
void summary() {
int i;
int sum = 0;
// 1. 장바구니에 담긴 물건의 목록을 만들어 출력
for (i = 0; i < cart.length; i++) {
System.out.print(cart[i] + ",");
// 2. 장바구니에 담긴 물건의 가격을 모두 더해서 출력
sum = sum + cart[i].price;
}
System.out.println();
System.out.println("사용한 금액 : " + sum);
// 3. 물건을 사고 남은 금액(돈)을 출력
System.out.println("남은 금액 : " + money);
}
}
try catch(트라이 캐치) 이용해서!!
package 연습2;
import java.util.Scanner;
public class Sample02 {
public static void main(String[] args) {
// 1~100 사이의 임의의 값을 얻어서 answer에 저장한다
int answer = (int) (Math.random() * 100) + 1;
int input = 0; // 사용자입력을 저장할 공간
int count = 0; // 시도횟수를 세기 위한 변수
while (true) {
count++;
try {
System.out.print("1과 100사이의 값을 입력하세요 :");
input = new Scanner(System.in).nextInt();
if (answer > input) {
System.out.println("더 큰 수를 입력하세요.");
} else if (answer < input) {
System.out.println("더 작은 수를 입력하세요.");
} else {
System.out.println("맞췄습니다.");
System.out.println("시도횟수는 " + count + "번입니다.");
break;
}
} catch (Exception e) {
System.out.println("다시 입력하세요");
}
}
}
}
교집합,차집합,합집합
package 연습2;
import java.util.ArrayList;
public class Sample03 {
public static void main(String[] args) {
ArrayList<Integer> list1 = new ArrayList<Integer>();
ArrayList<Integer> list2 = new ArrayList<Integer>();
ArrayList<Integer> kyo = new ArrayList<>(); // 교집합
ArrayList<Integer> cha = new ArrayList<>(); // 차집합
ArrayList<Integer> hap = new ArrayList<>(); // 합집합
list1.add(1);
list1.add(2);
list1.add(3);
list1.add(4);
list2.add(3);
list2.add(4);
list2.add(5);
list2.add(6);
// kyo: list1과 list2의 교집합 구하는 코드
kyo.addAll(list1);
kyo.retainAll(list2);
// cha: list1과 list2의 차집합 구하는 코드
cha.addAll(list1);
cha.removeAll(list2);
// hap: list1과 list2의 합집합구하는 코드
hap.addAll(list1);
hap.removeAll(list2);
hap.addAll(list2);
System.out.println("list1: "+list1);
System.out.println("list2: "+list2);
System.out.println("kyo : "+kyo);
System.out.println("cha : "+cha);
System.out.println("hap : "+hap);
}
}
쓰레드(Thread)
Thread 클래스를 상속
Runnable 인터페이스 상속(구현)
클래스 2개를 생성
Thread1-> Thread 클래스를 상속
Thread2-> Runnable 인터페이스 상속(구현)
각각 1~100까지 출력을 구현
두개의 쓰레디가 메인에서 실행까지 구현 되게끔!
스레드 간단예시!
.join(); Thread 끝날 때 까지 기다려주는 메서드
Thread, 컬렉션 프레임워크 사용하여 총 소요시간 줄이기.
'국비지원(국비교육) 웹 개발자 과정' 카테고리의 다른 글
국비지원 JAVA(자바) 프로그래밍(자바, MariaDB, 마리아디비 ) (0) | 2022.12.13 |
---|---|
국비지원 JAVA(자바) 프로그래밍(네트워크,OSI7계층,클라이언트,서버 동작과정, ) (0) | 2022.12.12 |
국비지원 JAVA(자바) 프로그래밍 자바 연습문제 모음 주사위, 별찍기) (0) | 2022.12.08 |
국비지원 JAVA(자바) 프로그래밍 (입출력 스트림) (0) | 2022.12.07 |
국비지원 JAVA(자바) 프로그래밍(Thread, 스레드, 람다, 익명함수, 상태 제어- sleep(), join() ,yield(), Thread동기화synchronized,데몬스레드 ) (1) | 2022.12.06 |