Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- 자동차수리시스템
- 객체 비교
- cursor문
- 환경설정
- 어윈 사용법
- abstract
- 집합_SET
- 사용자예외클래스생성
- 제네릭
- oracle
- 다형성
- EnhancedFor
- exception
- 생성자오버로드
- 오라클
- 예외처리
- 예외미루기
- Java
- 정수형타입
- 컬렉션 타입
- 메소드오버로딩
- 참조형변수
- 한국건설관리시스템
- GRANT VIEW
- 추상메서드
- 자바
- 인터페이스
- NestedFor
- 컬렉션프레임워크
- 대덕인재개발원
Archives
- Today
- Total
거니의 velog
230720 자바 강의 본문
접근지정자 제한자 반환타입 메서드명([매개변수 list]) {
메서드 본체
}
[제한자]
(1) abstract : 몸통이 없는 메소드. { } 가 없는 미완성 메소드. 이를 포함하는 클래스도 추상 클래스가 되어야 한다. 아직 완성된 객체가 아니라 인스턴스화가 불가능하다.
(2) static : main(), Math.random(), System.out.println() 등의 메서드는 과거 시점에서 로딩될 때 만들어짐. 객체 생성되기 전부터 호출할 수 있어야 하기 때문이다.
- static 이 붙은 메서드는 클래스명.메소드명(); 으로 불러야 한다.
클래스 객체가 생성이 되지 않아도 얼마든지 접근 가능. 이를 이용한 것이 싱글톤 패턴.
(3) final : 재정의 금지. @Override 금지.
return
(1) 제어의 반납 : void에서도 사용 가능. 그냥 return;으로만 끝남.
(2) 값의 반납
매개변수 전달 방법 : Call by value.
메소드로 전달된 매개변수 값 10, 20은 레지스터 메모리 영역에 저장되고,
메소드(int x, int y)는 그 값을 모른 상태로 copy만 한다.
그래서 메소드 안에 매개변수 명이 바뀌어도 전달되는 값 자체는 변하지 않는다.
[Goods.java]
package ddit.chap06.sec05;
public class Goods {
private String itemName;
private int price;
private int bonusPoint;
public Goods() {}
public Goods(String itemName, int price) {
this(itemName, price, (int)(price*0.001));
}
public Goods(String itemName, int price, int bonusPoint) {
this.itemName = itemName;
this.price = price;
this.bonusPoint = bonusPoint;
}
public String getItemName() {
return itemName;
}
public void setItemName(String itemName) {
this.itemName = itemName;
}
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
public int getBonusPoint() {
return bonusPoint;
}
public void setBonusPoint(int bonusPoint) {
this.bonusPoint = bonusPoint;
}
// ctrl+t : 객체 가계도 보기
// TV, Computer, Audio 따로 클래스 만들어 자식 관계 형성
// toString(); 자식 클래스에 자동으로 상속해 줌.
@Override
public String toString() {
return itemName;
}
}
[Customer.java]
package ddit.chap06.sec05;
public class Customer {
private int money;
private int bonusPoint;
private String cart = "";
public Customer() {}
public Customer(int money, int bonusPoint, String cart) {
this.money = money;
this.bonusPoint = bonusPoint;
this.cart = cart;
}
public int getMoney() {
return money;
}
public void setMoney(int money) {
this.money = money;
}
public int getBonusPoint() {
return bonusPoint;
}
public void setBonusPoint(int bonusPoint) {
this.bonusPoint = bonusPoint;
}
public String getCart() {
return cart;
}
public void setCart(String cart) {
this.cart = cart;
}
// 메서드 오버로딩으로 인해 buy() 메서드를 중복해서 정의 가능. 매개변수 타입으로 구분하기 때문.
public void buy(TV t) {
money += t.getPrice();
bonusPoint += t.getBonusPoint();
cart += ", "+t; // t.toString() 메서드 자동 실행
}
public void buy(Computer c) {
money += c.getPrice();
bonusPoint += c.getBonusPoint();
cart += ", "+c; // c.toString() 메서드 자동 실행
}
public void buy(Audio a) {
money += a.getPrice();
bonusPoint += a.getBonusPoint();
cart += ", "+a; // a.toString() 메서드 자동 실행
}
public void summary() {
System.out.println("구입품목 : " + cart.substring(2));
System.out.println("구입금액 합계 : " + money);
System.out.println("적립 포인트 : " + bonusPoint);
}
}
[TV.java]
package ddit.chap06.sec05;
public class TV extends Goods {
TV() {
super("Television", 50000);
}
// @Override
// public String toString() {
// return "Television";
// }
}
[Computer.java]
package ddit.chap06.sec05;
public class Computer extends Goods {
Computer() {
super("Computer", 100000);
}
// @Override
// public String toString() {
// return "Computer";
// }
}
[Audio.java]
package ddit.chap06.sec05;
public class Audio extends Goods {
Audio() {
super("Audio", 15000);
}
// @Override
// public String toString() {
// return "Audio";
// }
}
[HimartExample.java]
package ddit.chap06.sec05;
public class HimartExample {
public static void main(String[] args) {
Customer c1 = new Customer();
c1.buy(new Audio());
c1.buy(new Computer());
c1.buy(new TV());
c1.summary();
}
}
'대덕인재개발원 > 대덕인재개발원_Java' 카테고리의 다른 글
230724 자바 강의 (0) | 2023.07.24 |
---|---|
230721 자바 강의 (0) | 2023.07.21 |
230719 자바 강의 (0) | 2023.07.19 |
230718 자바 강의 (0) | 2023.07.18 |
230717 자바 강의 (0) | 2023.07.17 |