본문 바로가기

JAVA30

GUI / AWT / SWING AWT와 SWING의 차이-- java.awt 패키지 Component Subclasses:Button, Canvas, Checkbox, Choice, Container, Label, List, Scrollbar, TextComponent Button() // 이름 없음Constructs a button with an empty string for its label.Button(String label) // 이름 있음Constructs a button with the specified label. Frame 단독사용 가능Panel : frame 위에 추가panel위에 panel 추가 Card 라벨 추가하며 색깔을 바꾼다.패널 만들고레이아웃배경색주고 2018. 3. 15.
익명 클래스 2 (Anonymous Class) package education.innerClass; public class RemoteControl {void turnOn(); // public abstract void turnOn();void turnOff(); // public abstract void turnOff();} package education.innerClass; public class Anonymous2 {//anonymous class//필드 초기값으로 대입RemoteControl field = new RemoteControl() {@Overridevoid turnOn() {System.out.println("TV를 켭니다.");}@Overridevoid turnOff() {System.out.println("TV를 끕니다.");.. 2018. 3. 15.
익명 클래스 (Anonymous class) package education.innerClass; public class Person {void wake() {System.out.println("7시에 일어납니다.");} } package education.innerClass; public class Anonymous {Person field = new Person() {void work() {System.out.println("출근합니다.");}@Overridevoid wake() {System.out.println("6시에 일어납니다.");work();}}; //필드 선언문이라 ; 이 와야함.void method1() {Person localVar = new Person() {void work() {System.out.println("산책합니다.. 2018. 3. 15.
익명 객체 익명 객체는 단독 생성 불가클래스 상속하거나 인터페이스 구현해야만 생성 가능사용 위치필드의 초기값 로컬 변수의 초기값 매개변수의 매개값 을 주로 class Parents{abstract void parentMethod();} class Child extends Parents{int childField;void childMethod();//overridevoid parentMethod(){}} class A{parent field = new Child();} interface Parents{ void parentMethod();} class Child implements Parents{int childField;void childMethod();//overridevoid parentMethod(){}} c.. 2018. 3. 14.
중첩 클래스, 중첩 인터페이스 클래스 멤버로 선언된 클래스클래스 멤버로 선언된 인터페이스 - ui컴포넌트 내부 이벤트 처리에 많이 활용 멤버 클래스 - 인스턴스 멤버 클래스 : 인스턴스 생성 후 사용 가능 아우터 클래스 인스턴스 만들고이너 클래스 인스턴스 만들고 사용 가능 - 정적 멤버 클래스 : 인스턴스 생성 필요 없음아우터 클래스 : 인스턴스 생성 필요 없음이너 클래스 : 인스턴스 만들고 사용 가능로컬 클래스 2018. 3. 14.
Getter / Setter 사용 목적 : 멤버필드에 직접 접근하지 못하게 하고 필터링을 통해 데이터를 가공 할 필요가 있을 때 쓴다. boolean type은 getter가 is로 시작한다.나머지는 get으로 시작한다. package education; public class Car {// 필드private int speed;private boolean stop;public int getSpeed() {return speed;}public void setSpeed(int speed) {if(speed < 0) {this.speed = 0;}else {this.speed = speed;}}public boolean isStop() {return stop;}public void setStop(boolean stop) {this.sto.. 2018. 3. 14.
Static 예제 package education.staticex; public class Television { static String company = "Samsung";static String model = "LCD";static String info;static int price;String manufacture_date;Television(String manufacture_date){this.manufacture_date = manufacture_date;}static {info = company + "-" + model;}static {int sum = 0;for(int i=0; i 2018. 3. 14.
Static 클래스 파일클래스 로더클래스 라이브러리 메소드 영역스택영역힙영역pc 레지스터native 메소드 스택 메소드 영역에 static(필드, 메소드) 먼저 올려놓은 뒤 main 메소드를 실행한다.static 용도를 파악해서 정확하게 붙여야 한다. 판단 기준(멤버 필드)객체마다 가지고 있어야 할 데이터는 공용적인 데이터는 판단 기준(메서드)인스턴스 필드로 작업해야 할 메소드 인스턴스 메소드- 인스턴스화 해서 힙 메모리에 올라와 있어야 사용 가능인스턴스 필드로 작업하지 않는 메소드 정적 메소드 static블록 내에는 인스턴스 멤버 못온다정적 멤버만 온다정적 필드도 초기화 할 수 있다. 정적 멤소드에는 싱글톤 : 하나의 애플리케이션 내에서 단 하나만 생성되는 객체 싱글톤 생성 방법- 생성자에 private 붙임.- .. 2018. 3. 14.
Thread Thread start(); - runnable (실행 대기 상태) - 스케줄러에 의해서 실행 되면 running 상태 - cpu가 할당받으면 그 스레드를 실행 - runnable과 running 상태를 번갈아 감. 끝나는 시점 run메소드가 끝나는 시점stop flag를 통해서 끝내는 방법stop 메소드를 쓰면 안됨. block 상태로 변하는 block eventsleepjoinyield 동일 레벨, 자기 이상 우선순위를 가진 thread한테 양보. 본인은 blocking 됨. (본인이 아무 의미 없는 행위를 반복할 때)blocked -> unblocked thread n개 가 한가지에 동시에 작업 할 때 synchronized를 붙이면 동기화 되어 하나씩만 작업한다.특정 구간에만 sync 해 줄 수 .. 2018. 3. 8.