📁 ex01
☕ YalcoChicken.java
public class YalcoChicken {
// ⭐️ 클래스/정적 필드와 메소드들 : 본사의 정보와 기능
// 인스턴스마다 따로 갖고 있을 필요가 없는 것들에 사용
static String brand = "얄코치킨";
static String contact () {
// ⚠️ 정적 메소드에서는 인스턴스 프로퍼티 사용 불가
// System.out.println(name);
return "%s입니다. 무엇을 도와드릴까요?".formatted(brand);
}
int no;
String name;
YalcoChicken(int no, String name) {
this.no = no;
this.name = name;
}
String intro () {
// 💡 인스턴스 메소드에서는 정적 프로퍼티 사용 가능
return "안녕하세요, %s %d호 %s점입니다."
.formatted(brand, no, name);
}
}
☕ Main.java
// 💡 클래스 필드와 메소드는 인스턴스를 생성하지 않고 사용
String ycBrand = YalcoChicken.brand;
String ycContact = YalcoChicken.contact();
// ⚠️ 인스턴스 메소드는 불가
// String ycName = YalcoChicken.name;
// String ycIntro = YalcoChicken.intro();
YalcoChicken store1 = new YalcoChicken(3, "판교");
String st1Intro = store1.intro();
// 인스턴스에서는 클래스의 필드와 메소드 사용 가능
// ⚠️ 편의상 기능일 뿐, 권장하지 않음 (혼란 초래. IDE에서 자동완성 안 됨 주목)
String st1Brand = store1.brand;
String st1Contact = store1.contact();
📁 ex02
☕ YalcoChicken.java
public class YalcoChicken {
static String brand = "얄코치킨";
static String contact () {
return "%s입니다. 무엇을 도와드릴까요?".formatted(brand);
}
static int lastNo = 0; // ⭐️
int no;
//int no = ++lastNo; // 이렇게 해도 됨
String name;
YalcoChicken(String name) {
// 클래스 변수를 활용하여 생성마다 새 번호 부여 (또는 위처럼)
no = ++lastNo;
this.name = name;
}
String intro () {
return "안녕하세요, %s %d호 %s호점입니다." // 🔴
.formatted(brand, no, name);
}
}
Main.java
YalcoChicken store1 = new YalcoChicken("판교");
YalcoChicken store2 = new YalcoChicken("강남");
YalcoChicken store3 = new YalcoChicken("제주");