표의 형태를 가진 데이터 저장소
1차원 배열이 모인 형태
public class Test02 {
public static void main(String[] args) {
int[] a = new int[] {10, 20, 30};
int[] b = new int[] {40, 50, 60};
for(int i = 0; i < a.length; i++) {
System.out.print(a[i]);
System.out.print("\t");
}
System.out.println();
for(int i = 0; i < b.length; i++) {
System.out.print(b[i]);
System.out.print("\t");
}
System.out.println();
}
}
커피숍 메뉴 정보 문제
public class CoffeeShop {
//member field (=멤버 필드,멤버 변수,인스턴스 변수) - 데이터 저장
String name; //이름
String sort; //분류
int price; //가격
boolean event; //행사여부
int eventPercent = 20; //할인 퍼센트
//같은 이름으로 형태만 다르게 메소드를 구현 - 메소드 오버로딩(method overloading)
//void setting(String name, String sort, int price) {
//this.name = name;
//this.sort = sort;
//this.price = price;
//this.event = false;
//}
//위와 같이 메소드 오버로딩 할 경우에 중복코드가 생기므로 아래와 같이 코드를 간소화해서 메소드 오버로딩 한다.
void setting(String name, String sort, int price) {
this.setting(name, sort, price, false);
}
//member method (멤버 메소드) - 기능 구현(코드 저장)
void setting(String name, String sort, int price, boolean event) {
this.name = name;
this.sort = sort;
this.price = price;
this.event = event;
}
//member method (멤버 메소드) - 기능 구현(코드 저장)
void output() {
System.out.print(this.sort);
System.out.print(" ");
if(this.event) { //(this.event == true) true일 경우에는 생략함.
System.out.print(this.name + "(행사중)");
System.out.print(" ");
//eventPrice는 외부에서 가져다와서 쓰는 멤버 변수가 아니므로 this를 사용하지 않음.
int eventPrice = price * (100 - eventPercent) / 100;
System.out.print(eventPrice + "(" + this.price + "원)");
System.out.print(" ");
System.out.print("행사중");
System.out.print(" ");
}
else {
System.out.print(this.name);
System.out.print(" ");
System.out.print(this.price + "원");
System.out.print(" ");
System.out.print("-");
}
System.out.println();
}
}
public class Test01 {
public static void main(String[] args) {
//객체 생성 (c1, c2, c3는 참조변수)
CoffeeShop c1 = new CoffeeShop();
CoffeeShop c2 = new CoffeeShop();
CoffeeShop c3 = new CoffeeShop();
CoffeeShop c4 = new CoffeeShop();
//데이터 초기화
//오버로딩으로 인하여 값이 없는 경우에는 값을 입력하지 않아도됨.
c1.setting("아메리카노", "음료", 2500, true);
c2.setting("모카라떼", "음료", 3500);
c3.setting("치즈케이크", "디저트", 5000);
c4.setting("마카롱", "디저트", 3000, false);
//데이터 출력
System.out.println("분류 이름 가격 행사여부");
c1.output();
c2.output();
c3.output();
c4.output();
}
}
- 메세지 = 작성자(String) + 내용(String) + 전송시각(String) + 안읽은사람수(int)
package oop.test1;
public class Message {
//멤버 필드 : 클래스를 구성하는 세부 데이터를 저장하는 변수
String writer; //메세지에는 작성자가 있어야 해요
String content; //메세지에는 내용이 있어야 해요
String time; //메세지에는 전송시각이 있어야 해요
int remain; //메세지에는 안읽은사람수가 있어야 해요
}
public class Test01 {
public static void main(String[] args) {
//카톡 메세지 2개
//- 낱개 데이터가 아니라 미리 만들어둔 Message 클래스의 객체를 생성
Message m1 = new Message(); // m1 변수 한 개를 생성
//m1 -------> {writer:null, content:null, time:null, remain:0}
m1.writer = "초롱초롱 라이언";
m1.content = "언제와?";
m1.time = "15시 02분";
m1.remain = 1;
//System.out.println(m1); //리모컨 정보 (리모컨형태@일련번호(주소 아님))
System.out.println(m1.writer); //m1 대상에 있는 writer 접근 후 출력
System.out.println(m1.content); //m1 대상에 있는 content 접근 후 출력
System.out.println(m1.time); //m1 대상에 있는 time 접근 후 출력
System.out.println(m1.remain); //m1 대상에 있는 remain 접근 후 출력
Message m2 = new Message();
System.out.println(m2.writer);
System.out.println(m2.content);
System.out.println(m2.time);
System.out.println(m2.remain);
}
}