์์ฑ์
์ธ์คํด์ค๋ฅผ ์์ฑํ ๋ ์ฌ์ฉํ๋ค.
ํด๋์ค ์์ฑ์ ์์ฑ์๋ฅผ ๋ง๋ค์ง ์์ผ๋ฉด ๊ธฐ๋ณธ์์ฑ์๊ฐ ์์ฑ๋๋ค.
๊ธฐ๋ณธ ์์ฑ์๋ ๋งค๊ฐ๋ณ์๋ฅผ ํ๋๋ ๋ฐ์ง ์๋ ์์ฑ์์ด๋ค.
์์ฑ์๋ ๋ฆฌํดํ์ ์ด ์๊ณ , ํด๋์ค์ด๋ฆ๊ณผ ๊ฐ๋ค.
public class Car {
private String name;
public Car(){
System.out.println("์๋์ฐจ ์์ฑ");
}
public Car(String name){
this.name = name;
}
public void printName(){
System.out.println("์๋์ฐจ ์ด๋ฆ: "+name);
}
}
-------------------------------------
public class CarExam(){
public static void main(String[] args) {
Car c1 = new Car(); //"์๋์ฐจ ์์ฑ" ์ถ๋ ฅ
System.out.println(c1); //c1์ด ๊ฐ์ง๋ toString()๋ฉ์
c1.printName(); //String ํ์
name์ด ์ฐธ์กฐํ๋ ๊ฒ์ด ์์ผ๋ฏ๋ก "์๋์ฐจ ์ด๋ฆ: null
System.out.println("-------------");
Car c2 = new Car("egg"); //"์๋์ฐจ ์ด๋ฆ: egg"์ถ๋ ฅ
c1.printName();
}
}
์์ฑ์ ์ค๋ฒ๋ก๋ฉ : ์์ฑ์์ ๋งค๊ฐ๋ณ์ ๊ฐ์๊ฐ ๋ค๋ฅด๊ฑฐ๋, ํ์ ์ด ๋ค๋ฅธ ๋ฉ์๋ ์์ฑ์๋ฅผ ์ฌ๋ฌ ๊ฐ ๊ฐ์ง ์ ์๋ค.
public class User {
private String email;
private String password;
private String name;
public User(String name, String email){
this.email = email;
this.name = name;
}
//์์ฑ์ ์ค๋ฒ๋ผ์ด๋ฉ
public User(String name, String email, String password){
this.email = email;
this.name = name;
this.password = password;
}
public String getEmail() {
return email;
}
public String getPassword() {
return password;
}
public String getName() {
return name;
}
@Override
public String toString() {
return "User{" +
"email='" + email + '\'' +
", name='" + name + '\'' +
'}';
}
}
public class UserExam {
public static void main(String[] args) {
User user = new User("๊ณ๋","abcde@naver.com");
System.out.println(user);
User user2 = new User("ํ๊ธธ๋","korea@naver.com","1234");
System.out.println(user2.getName());
System.out.println(user2.getEmail());
System.out.println((user2.getPassword()));
}
}
์คํ๊ฒฐ๊ณผ
User{email='abcde@naver.com', name='๊ณ๋'}
ํ๊ธธ๋
korea@naver.com
1234
์ํธ๋ ๋ฏผ๊ฐํ ์ ๋ณด์ด๋ฏ๋ก, toString()๋ฉ์๋ ์ค๋ฒ๋ผ์ด๋ฉ ์ ์ถ๋ ฅ์ ํ์ง ์์๋ค.
Immutable ๊ฐ์ฒด: ์์ฑ์์์ ๋ฃ์ด์ค ๊ฐ์ ๋ฆฌํดํด์ฃผ๋ ๊ธฐ๋ฅ๋ง ์๋ ๊ฐ์ฒด๋ฅผ ๋งํ๋ค. ์ธ๋ถ์ ์ ๋ฌ์ ํ๋๋ฐ ๊ฐ ๋ณ๊ฒฝ์ ์ํ์ง ์๋ ๊ฐ์ฒด
Pdf ๊ฐ์ด ์ฝ์ ์ ์๋ ๊ธฐ๋ฅ๋ง ์์
toString() ๋ฉ์๋๋ฅผ ์ค๋ฒ๋ผ์ด๋ฉ ํ๋ฉด ์ด ๊ฐ์ฒด๊ฐ ๊ฐ์ง ์ ๋ณด๋ฅผ ๋ฌธ์์ด๋ก ๋ฐํํ๋ค.
this์์ฑ์
this๋ ์ธ์คํด์ค ์๊ธฐ ์์ ์ ์ฐธ์กฐํ ๋ ์ฌ์ฉํ๋ ํค์๋๋ก,
this() ์์ฑ์๋ ์๊ธฐ ์์ ์ ์์ฑ์๋ฅผ ๋งํ๊ณ , ์์ฑ์ ์์์๋ง ์ฌ์ฉ๊ฐ๋ฅํ๋ค.
this() ์์ฑ์๋ super์์ฑ์๋ฅผ ์ ์ธํ ์ด๋ค ๋ฌธ๊ตฌ๋ณด๋ค ์์ฑ์ ๋ธ๋ก์์ ๊ฐ์ฅ ์๋จ์ ์ ์ด์ผ ํ๋ค.
1๋ฒ์ฝ๋์ 2๋ฒ์ฝ๋๋ ๊ฐ์ ์ญํ ์ ํ๋ค.
1๋ฒ์ฝ๋
public User(String name, String email){
this(name, email, null);
}
2๋ฒ์ฝ๋
public User(String name, String email){
this.email = email;
this.name = name;
}
super์์ฑ์
super๋ ์ธ์คํด์ค ๋ถ๋ชจ๋ฅผ ์ฐธ์กฐํ ๋ ์ฌ์ฉํ๋ ํค์๋๋ก,
super() ์์ฑ์๋ ๋ถ๋ชจ ์์ฑ์๋ฅผ ์๋ฏธํ๊ณ , ์์ฑ์ ์์์๋ง ์ฌ์ฉ๊ฐ๋ฅํ๋ค.
์์ฑ์ ์์์ ์ฒซ๋ฒ์งธ ์ค์๋ง ์ฌ ์ ์๋ค.
์์ฑ์๋ ๋ฌด์กฐ๊ฑด super()์์ฑ์๋ฅผ ํธ์ถํด์ผ ํ๋ค. ์์ฑํ์ง ์์์ผ๋ฉด ์๋์ผ๋ก ๋ถ๋ชจ์ ๊ธฐ๋ณธ์์ฑ์๊ฐ ํธ์ถ๋๋ค.
์์ฑ์๊ฐ ์์ผ๋ฉด ๊ธฐ๋ณธ์์ฑ์๊ฐ ๋ง๋ค์ด์ง๋๋ฐ, ์ด ๊ธฐ๋ณธ์์ฑ์์๋ ์๋ฌด์ฝ๋๊ฐ ์ ๋ ฅ๋์ง ์์ ๊ฒ์ด ์๋๋ผ, super() ์ฝ๋๊ฐ ์๋์ผ๋ก ์ ๋ ฅ๋๋ค.
์ฆ, ๋ถ๋ชจ์ ์์ฑ์๋ฅผ ํธ์ถํ๋ ์ฝ๋๊ฐ ์๋์ฝ์ ๋๋ค. ์์ฑ์๋ฅผ ํ๋ ๋ง๋ค์ด์ค๋ค๋ฉด ๊ธฐ๋ณธ์์ฑ์๋ ์์ฑ๋์ง ์๊ณ , ์ด๋ฌ๋ฉด ์์ํด๋์ค์ ์์ฑ์์์ ์ค๋ฅ๊ฐ ๋๋ค.
์์ํด๋์ค์ ์์ฑ์๋ ๋ถ๋ชจํด๋์ค์ ๊ธฐ๋ณธ์์ฑ์๋ฅผ super()๋ก ํธ์ถํ๋๋ฐ, ๋ถ๋ชจํด๋์ค์ ๊ธฐ๋ณธ์์ฑ์๊ฐ ์์ผ๋ฏ๋ก ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ ๊ฒ์ด๋ค.
์ด๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด์ ์์ ํด๋์ค์ ์์ฑ์์์ super()๊ฐ ์๋ ๋ถ๋ชจํด๋์ค์ ์์ฑ์์ ๋ง๋ ๋งค๊ฐ๋ณ์๋ฅผ ์ ๋ ฅํด์ผ ํ๋ค.
์ ๋ฆฌํ๋ฉด ๋ถ๋ชจํด๋์ค์ ๊ธฐ๋ณธ์์ฑ์๊ฐ ์์ผ๋ฉด ์์ํด๋์ค์ ์์ฑ์์์๋ ๋ถ๋ชจํด๋์ค์ ์์ฑ์๋ฅผ super()๋ฅผ ์ฌ์ฉํด์ ์ง์ ํธ์ถํด์ผํ๋ค.
์ถ์ ํด๋์ค
๋ฏธ์์ฑ ํด๋์ค, ๋ฉ์๋ ๋ช๊ฐ๊ฐ ๊ตฌํ๋์ง ์๊ณ ์ ์ธ๋ง ๋์ด์๋ ํด๋์ค์ด๋ค.
์ถ์ ํด๋์ค๋ ์ธ์คํด์ค๊ฐ ๋ ์ ์๊ณ , ์์๋ฐ๋ ์์์ด ์ธ์คํด์ค๊ฐ ๋๋ค.
abstract ํค์๋๋ฅผ ์ฌ์ฉํ์ฌ ํด๋์ค๋ฅผ ์ ์ํ๋ฉฐ 1๊ฐ ์ด์์ ์ถ์ ๋ฉ์๋๋ฅผ ๊ฐ์ง๋ค. ์ด๋, ์ถ์ ๋ฉ์๋๋ ์์ด๋ ๊ด์ฐฎ๋ค.
์ถ์ ํด๋์ค๋ฅผ ์์๋ฐ์ ๊ฒฝ์ฐ ๋ฐ๋์ ์ถ์๋ฉ์๋๋ฅผ ๊ตฌํํด์ค์ผ ํ๋ค.
public abstract class ํด๋์ค๋ช {...}
์ถ์๋ฉ์๋ Car๋ฅผ ๋ง๋๋ ์ฌ๋์ run()๋ฉ์๋๊ฐ ํ์ํ๋ค๊ณ ์๊ฐ์ ํ๋๋ฐ, run()์ ์๋์ฐจ๋ง๋ค ๊ธฐ๋ฅ์ ๋ค๋ฅด๊ฒ ๊ตฌํํด์ผ ํ๋ค๊ณ ์๊ฐํ๋ค.
๋ฐ๋ผ์ Car ํด๋์ค์์๋ run() ๋ฉ์๋๋ฅผ ์ถ์๋ฉ์๋๋ก ์ ์ธ๋ง ํ๊ณ , Carํด๋์ค๋ฅผ ์์๋ฐ๋ Busํด๋์ค์์ ๋ฉ์๋ ์ค๋ฒ๋ผ์ด๋ฉ์ ํตํด ๊ตฌ์ฒด์ ์ผ๋ก ๊ธฐ๋ฅ์ ๊ตฌํํด์ผ ํ๋ค.
public abstract class Car {
public abstract void run();
}
------------------------------------
public class Bus extends Car{
@Override
public void run() {
System.out.println("ํ๋ฅ๊ตฌ๋");
}
}
------------------------------------
public class CarExam {
public static void main(String[] args) {
Bus b= new Bus();
b.run();
}
}
//Car c = new Car(); -> ์ค๋ฅ๋ฐ์
//์ถ์ ํด๋์ค์ด๋ฏ๋ก ์ธ์คํด์ค๊ฐ ๋ ์ ์๋ค. ์ฌ์ฉํ๋ ค๋ฉด
Car c = new Bus();
ํ ํ๋ฆฟ ๋ฉ์๋ ํจํด์ผ๋ก ์ถ์ ํด๋์ค ๊ฐ๋ ๋ค์ง๊ธฐ
์ถ์ ํด๋์ค๋ ํ ํ๋ฆฟ ๋ฉ์๋ ํจํด์์ ๊ฐ์ฅ ๋ง์ด ์ฐ์ธ๋ค.
ํ ํ๋ฆฟ ๋ฉ์๋ ํจํด์ ์คํ ์์๊ฐ ์ ํด์ ธ ์๊ณ
๊ฐ๋ณ ๊ตฌํ ๋๋ ํน์ ๋ฉ์๋ ์ธ ๋ค๋ฅธ ๋ฉ์๋๋ค์ ๋์ผํ ๋์์ ํ๋ ํจํด์ด๋ค.
์ด๋ค ์ปจํธ๋กค๋ฌ๋ฅผ ๋ง๋ ๋ค๊ณ ์๊ฐํ์. ๊ธฐ๋ฅ์ 3๊ฐ์ง์ธ๋ฐ, "์ด๊ธฐํ"์ "๋ง๋ฌด๋ฆฌ"๋ ํญ์ ๊ฐ์ ์ฝ๋์ด๊ณ , "์คํ" ๋ง ๋ณ๊ฒฝํ ์ ์๋ค๊ณ ํ์.
Controller์ ์ข
๋ฅ๊ฐ ์ฌ๋ฌ๊ฐ์ด๋ค.
์ด๊ธฐํ - ํญ์ ๊ฐ์ ์ฝ๋
์คํ - ๋ค๋ฅธ ์ฝ๋
๋ง๋ฌด๋ฆฌ - ํญ์ ๊ฐ์ ์ฝ๋
package fw;
public abstract class Controller {
public void init(){
System.out.println("์ด๊ธฐํ");
}
public void close(){
System.out.println("๋ง๋ฌด๋ฆฌ");
}
public abstract void run();
//๋ด๊ฐ ๊ฐ์ง๊ณ ์๋ ๋ฉ์๋๋ฅผ ์์๋ฅผ ๊ฐ์ง๊ณ ํธ์ถ: ํ
ํ๋ฆฟ ๋ฉ์๋
public void execute(){
//execute()๋ฉ์๋ฅผ ์คํํ๋ฉด ์์ ์ init,run,close ๋ฉ์๋๊ฐ ํธ์ถ๋๋ค.
this.init();
this.run();
this.close();
}
}
package myproject;
import fw.Controller;
public class FirstController extends Controller {
@Override
public void run() {
System.out.println("๋ณ๋๋ก ๋์ํ๋ ์ฝ๋");
}
}
package myproject;
import fw.Controller;
public class ControllerMain {
public static void main(String[] args) {
Controller c1 = new FirstController(); //์์ ํด๋์ค ์ฐธ์กฐ
//์์๋๋ก ํธ์ถํด์ผ ํ๋ฏ๋ก excute()๋ฉ์๋ ํธ์ถ
c1.execute();
}
}
์คํํ๋ฉด
์ด๊ธฐํ
๋ณ๋๋ก ๋์ํ๋ ์ฝ๋
๋ง๋ฌด๋ฆฌ
์ถ๋ ฅ๋๋๋ฐ, ์์ํด๋์ค์์ ์ค๋ฒ๋ผ์ด๋ฉํ ๋ฉ์๋๊ฐ ํธ์ถ๋๋ ๊ฒ์ ๋ณผ ์ ์๋ค.
์ฆ, ๋ถ๋ชจํด๋์ค๋ฅผ ์์๋ฐ์์ผ๋ก ๋งค๋ฒ ๋ณํ๋ ์ฝ๋๋ง ๊ตฌํํ๋๋ก ๋ง๋ค์๋ค. ๊ทธ๋ฆฌ๊ณ exceute()๋ง ํธ์ถํด๋ ์๋์ผ๋ก init()๊ณผ close()๊ฐ ํธ์ถ๋๋ ๊ฒ์ ๋ณผ ์ ์๋ค.
์ด๋, ์ฌ์ฉ์๊ฐ ์ค์๋ก ์ด๊ธฐํ ์ฝ๋๋ง ์คํํ๋ฉด
์คํํ๋ฉด
์ด๊ธฐํ
์ฆ, ์ํ์ง ์์ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ ๊ฒ์ด๋ค. ์ด๋ง์ init(), close(),run()๋ ์ฌ์ฉ์๊ฐ ์ง์ ํธ์ถํ๋ฉด ์๋๋ ๊ฒ. ์ด๋, ์ฌ์ฉํ ์ ์๋ ๊ฒ์ด ์ ๊ทผ์ง์ ์ ์ค protected์ด๋ค.
protected ํค์๋ : ๊ฐ์ ํจํค์ง์ด๊ฑฐ๋ ์์๋ฐ์์ ๊ฒฝ์ฐ ์ ๊ทผ ๊ฐ๋ฅํ๋ค.
package fw;/*
Controller์ ์ข
๋ฅ๊ฐ ์ฌ๋ฌ๊ฐ์ด๋ค.
์ด๊ธฐํ - ํญ์ ๊ฐ์ ์ฝ๋
์คํ - ๋ค๋ฅธ ์ฝ๋
๋ง๋ฌด๋ฆฌ - ํญ์ ๊ฐ์ ์ฝ๋
*/
public abstract class Controller {
protected void init(){
System.out.println("์ด๊ธฐํ");
}
protected void close(){
System.out.println("๋ง๋ฌด๋ฆฌ");
}
protected abstract void run();
//๋ด๊ฐ ๊ฐ์ง๊ณ ์๋ ๋ฉ์๋๋ฅผ ์์๋ฅผ ๊ฐ์ง๊ณ ํธ์ถ: ํ
ํ๋ฆฟ ๋ฉ์๋
public void execute(){
//execute()๋ฉ์๋ฅผ ์คํํ๋ฉด ์์ ์ init,run,close ๋ฉ์๋๊ฐ ํธ์ถ๋๋ค.
this.init();
this.run();
this.close();
}
}
๋ํ ์์ํด๋์ค์์ ๋ณ๊ฒฝํ ๋ฉ์๋์ธ run()๋ง ์ค๋ฒ๋ผ์ด๋ฉ ํด์ผ ํ๋๋ฐ, init(), close()๋ฅผ ์ค๋ฒ๋ผ์ด๋ฉ ํ ์ ์๋ค.
๋ฉ์๋๊ฐ ์ค๋ฒ๋ผ์ด๋ฉ ๋๋ฉด ๋ฌด์กฐ๊ฑด ์์ํด๋์ค์ ๋ฉ์๋๊ฐ ์คํ๋๋๋ฐ, ์ด๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด์ final ํค์๋๋ฅผ ์ฌ์ฉํ๋ค.
final์ด ๋ถ์ ๋ฉ์๋๋ ์ค๋ฒ๋ผ์ด๋ฉ์ด ๊ธ์ง๋๋ค.
final์ ๋ฐ๋ : abstract
final ํด๋์ค, ๋ถ๋ณ๊ฐ์ฒด String
๋ถ๋ชจ๊ฐ ๋ ์ ์๋ ํด๋์ค
abstractํด๋์ค๋ ์ธ์คํด์ค๊ฐ ๋ ์ ์์ผ๋ฏ๋ก, ๋ฐ๋์ ํ์ํด๋์ค๊ฐ ํ์ํ๋ฐ, final ํด๋์ค๋ ์์์ ๊ธ์ง์ํจ๋ค.
๋ํ์ ์ธ finalํด๋์ค๋ Stringํด๋์ค
public final class ํด๋์ค๋ช
{ ... }
public class StringExam {
public static void main(String[] args) {
String str1="hello";
String str2="hello";
String str3= new String("hello");;
String str4= new String("hello");
if(str1 == str2)
System.out.println("str1 == str2");
if(str1 == str3)
System.out.println("str1 == str3");
if(str3 == str4)
System.out.println("str3 == str4");
}
}
์คํ๊ฒฐ๊ณผ
str1 == str2
new๋ก ์์ฑํ์ง ์์ผ๋ฉด ์์ ์ทจ๊ธ๋จ
str1๊ณผ str2๋ชจ๋ ๊ฐ์ “hello”๋ฅผ ์ฐธ์กฐํจ.
new๊ฐ ์ฐ์ด๋ฉด ํญ์ ํ๋ฉ๋ชจ๋ฆฌ์ ์๋ก์ด ๊ฐ์ฒด๊ฐ ์์ฑ๋จ.
str3,str4๋ ๋ค๋ฅธ ์์ญ์ hello๋ฅผ ์ฐธ์กฐํ๋ ๊ฒ์ด๋ค.
๋ ํผ๋ฐ์ค ํ์ ์์ == : ๊ฐ์ ๊ฒ์ ์ฐธ์กฐํ๋๋ (o), ๊ฐ์ด ๊ฐ๋ (x)
๋ฐ๋ผ์ String ์ฌ์ฉํ ๋ new๋ฅผ ์ฌ์ฉํ์ง ์๋ ๊ฒ์ด ์ข๋ค. new์ฌ์ฉํ ๋ ๋ง๋ค ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ
if(str1.equals(str2)){
System.out.println("๊ฐ์ด ๊ฐ๋ค.");
}
String s = str1.toUpperCase();
System.out.println(s);
System.out.println(str1);
}
์คํ ๊ฒฐ๊ณผ
๊ฐ์ด ๊ฐ๋ค.
HELLO
hello
๊ฐ์ด ๊ฐ๋ : equals()๋ฉ์๋
String์ ๋ถ๋ณํด๋์ค์ด๊ธฐ ๋๋ฌธ์ str1์ด ์ฐธ์กฐํ๋ String์ ๋ณํ์ง ์์
String์ ํญ์ ๋ด๋ถ์ ์ผ๋ก ์๋ก์ด ๋ฌธ์์ด์ ๋ง๋ค์ด์ ๋ฆฌํดํ๋ค. ๊ทธ๋์ String์ด ๊ฐ์ง๊ณ ์๋ ๋ชจ๋ ๋ฉ์๋๋ ์๊ธฐ ์์ ์ ๋ณํ์ํค์ง ์๋๋ค.
StringBuffer ํด๋์ค๋ String๊ณผ ๋น์ทํ์ง๋ง ๋ด๋ถ๊ฐ ๋ณํ๋ค.
String / StringBuffer/ StringBuilder
์ ๊ทผ์ ํ์
1) private : ๊ฐ์ ํด๋์ค ๋ด์์๋ง ์ ๊ทผ ๊ฐ๋ฅ
2) default : ๊ฐ์ ํจํค์ง ๋ด์์๋ง ์ ๊ทผ ๊ฐ๋ฅ
3) protected : ๊ฐ์ ํจํค์ง ๋ด์์, ๊ทธ๋ฆฌ๊ณ ๋ค๋ฅธ ํจํค์ง์ ์์ ํด๋์ค์์ ์ ๊ทผ ๊ฐ๋ฅ
4) public : ์ ๊ทผ ์ ํ์ด ์ ํ ์๋ค.
์ ๊ทผ์ ํ์ | ํด๋์ค ๋ด๋ถ | ๋์ผ ํจํค์ง | ํ์ ํด๋์ค | ๊ทธ ์ธ |
public | O | O | O | O |
protected | O | O | O | X |
default | O | O | X | X |
private | O | X | X | X |
์ธํฐํ์ด์ค
์ค๊ณ: ์ด๋ค ๊ธฐ๋ฅ์ ๋ง๋ค ์ง๋ถํฐ ๊ณ ๋ฏผํ๊ณ , ๋ง๋ค ๊ธฐ๋ฅ๋ค์ ๊ด๋ จ๋ ๊ฒ๋ผ๋ฆฌ ๋ฌถ์ ํ ์ด๋ฆ์ ์ง์ด์ค๋ค.
์ธํฐํ์ด์ค : ๊ธฐ๋ฅ๋ค์ ๋ชฉ๋ก์ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ ๋ฉ์๋๊ฐ ์ ์ธ๋ง ๋์ด์๋๋ฐ, ์ถ์ํด๋์ค์ฒ๋ผ new๋ฅผ ์ฌ์ฉํ์ฌ ์ธ์คํด์ค๋ฅผ ์์ฑํ ์ ์๋ค.
๊ป๋ฐ๊ธฐ๋ผ๊ณ ์๊ฐํ์. ์ค๊ณ ๋จ๊ณ์์ ์ ํํ ๋ฉ์๋ ๊ตฌํ์ ํ์ง ์์๋, ํ์ ์ก๋๋ฐ ์ ์ฉํ๋ค.
[public] interface ์ธํฐํ์ด์ค์ด๋ฆ { ... }
์ธํฐํ์ด์ค๋ ๊ธฐ๋ฅ์ด ์ ์ธ๋ง ๋์ด์๋ ๊ฒ์ด๋ค.
์ธํฐํ์ด์ค ๋ฉ์๋๋ ๋ชจ๋ ์ถ์๋ฉ์๋
์ธํฐํ์ด์ค์ ๋ชจ๋ ํ๋๋ public static final์ด์ด์ผ ํ๋ฉฐ, ๋ชจ๋ ๋ฉ์๋๋ public abstract์ฌ์ผ ํ๋ค.
์ด ๋์ ์๋ต์ด ๊ฐ๋ฅํ๋ค.
public static: ๋ฉ๋ชจ๋ฆฌ์ ์ธ์คํด์ค๋ฅผ ๋ง๋ค์ง ์์๋ ์ฌ๋ผ๊ฐ ์ ์๋ค.
public interface LottoMachine {
int MAX_BALL_COUNT = 45;
int RETURN_BALL_COUNT = 6;
public void setBalls(Ball[] balls); //Ball[] : Ball ์ฌ๋ฌ๊ฐ๋ฅผ ๋ฐ๊ฒ ๋ค. 45๊ฐ ๋ฐ๊ธฐ
public void mix(); //๊ณต์ ์๋๋ค.
public Ball[] getBalls();//6๊ฐ์ ๊ณต์ ๋ฐํ.
}
๋ฐฐ์ด๋ง๋ณด๊ธฐ
Ball b1 = new Ball(1);
....
Ball b45 = new Ball(45);
๊ณต์ด 45๊ฐ ํ์ํจ -> ๋ฐฐ์ด ์ด์ฉ
Ball[] balls = new Ball[45]; //Ball์ธ์คํด์ค๋ฅผ 45๊ฐ ์ฐธ์กฐํ ์ ์๋ ๋ฐฐ์ด์ ๋ง๋ ๋ค.
balls[0] = new Ball(1);
....
balls[44] = new Ball(45);
'๐ผ๋ฐฑ์ค๋ > Java ๋ฌธ๋ฒ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐฐ์ด 2/2 (0) | 2023.08.22 |
---|---|
๋ฐฐ์ด 1/2 (0) | 2023.08.22 |
๊ฐ์ฒด ์งํฅ ๋ฌธ๋ฒ 2/3 (0) | 2023.08.20 |
๊ฐ์ฒด ์งํฅ ๋ฌธ๋ฒ 1/3 (0) | 2023.08.20 |
์๋ฐ ๊ธฐ๋ณธ ๋ฌธ๋ฒ (0) | 2023.08.20 |