public class Outter {
// 인스턴스 멤버 내부 클래스
// Outter 객체가 생성된 다음에만 사용할 수 있는 내부 클래스
// Outter 객체의 모든 멤버(필드, 메소드)를 사용할 수 있다.
public class Inner1 {
}
// 정적 내부 클래스
// Outter객체 생성 없이 사용할 수 있는 내부 클래스
// Outter의 정적 멤버(정적 필드, 정적 메소드)만 사용할 수 있다.
public static class Inner2 {
}
public void method() {
int x = 10;
x = 20;
// 로컬 내부 클래스
// 메소드가 실행되는 동안에만 사용할 수 있는 내부 클래스
// Outter객체의 모든 멤버를 사용할 수 있다.
// ...
class Inner3 {
public void m1() {
System.out.println(x);
}
}
}
}
public interface Iterator {
boolean empty();
int next();
}
public class List {
int[] data = {10, 20, 30, 40, 50};
public Iterator getIterator() {
Iterator it = new ListIterator();
return it;
}
class ListIterator implements Iterator {
int[] clone;
int position;
public ListIterator() {
clone = data;
position = 0;
}
public int next() {
int number = 0;
number = clone[position];
position++;
return number;
}
public boolean empty () {
if (position < clone.length) {
return false;
} else {
return true;
}
}
}
}
public class IteratorApp {
public static void main(String[] args) {
List list = new List();
Iterator iterator = list.getIterator();
System.out.println(iterator.empty());
System.out.println(iterator.next());
System.out.println(iterator.empty());
System.out.println(iterator.next());
System.out.println(iterator.empty());
System.out.println(iterator.next());
System.out.println(iterator.empty());
System.out.println(iterator.next());
System.out.println(iterator.empty());
System.out.println(iterator.next());
System.out.println(iterator.empty());
}
}
public class Account {
private int no;
private String name;
private int balance;
public int getNo() {
return no;
}
public String getName() {
return name;
}
public int getBalance() {
return balance;
}
public static class AccountBuilder {
private int no;
private String name;
private int balance;
public AccountBuilder no(int no) {
this.no = no;
return this;
}
public AccountBuilder name(String name) {
this.name = null;
this.name = name;
return this;
}
public AccountBuilder balance(int balance) {
this.balance = 0;
this.balance = balance;
return this;
}
public Account build() {
Account account = new Account();
account.no = no;
account.name = name;
account.balance = balance;
return account;
}
}
}
public class AccountApp {
public static void main(String[] args) {
Account.AccountBuilder builder = new Account.AccountBuilder();
builder.no(10).name("홍길동");
Account account1 = builder.build();
System.out.println("번호 : " + account1.getNo());
System.out.println("이름 : " + account1.getName());
System.out.println("잔고 : " + account1.getBalance());
builder.no(20).balance(230000);
Account account2 = builder.build();
System.out.println("번호 : " + account2.getNo());
System.out.println("이름 : " + account2.getName());
System.out.println("잔고 : " + account2.getBalance());
builder.no(40).name("김유신").balance(430000);
Account account3 = builder.build();
System.out.println("번호 : " + account3.getNo());
System.out.println("이름 : " + account3.getName());
System.out.println("잔고 : " + account3.getBalance());
Account account4 = builder.no(50).name("강감찬").balance(5000000).build();
System.out.println("번호 : " + account4.getNo());
System.out.println("이름 : " + account4.getName());
System.out.println("잔고 : " + account4.getBalance());
}
}
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class MyWindow extends JFrame {
JTextArea area = new JTextArea();
JTextField field = new JTextField();
JButton btn = new JButton("전송");
public MyWindow() {
setTitle("연습 프로그램");
JPanel panel = new JPanel(new BorderLayout());
add(new JScrollPane(area), BorderLayout.CENTER);
add(panel, BorderLayout.SOUTH);
panel.add(field, BorderLayout.CENTER);
panel.add(btn, BorderLayout.EAST);
ActionListener listener = new ActionListener() {
public void actionPerformed(ActionEvent event) {
String text = field.getText();
area.append(text);
area.append("\n");
field.setText("");
field.requestFocus();
}
};
field.addActionListener(listener);
btn.addActionListener(listener);
setBounds(100, 100, 300, 300);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
field.requestFocus();
}
public static void main(String[] args) {
new MyWindow();
}
}
'자바 > oop6' 카테고리의 다른 글
PhotoShop, Mouse, Member.java (0) | 2019.06.07 |
---|