일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- html id
- html charset
- #성적관리프로그램
- relative path
- #binary
- #2차원배열
- html video
- #3차원배열
- docker example
- #1차원배열
- html code
- border-box
- #자바상속#자바이즈어#is~a
- html object
- #C++ has~a
- html multimedia
- #android activity
- #다차원포인터
- html youtube
- #C++ 연산자함수오버로딩
- 토큰경제
- mac terminal command
- html plug-in
- hyperledger transaction
- #bubbleSort
- #JAVASCRIPT
- html5 new tag
- git flow
- #CallByAddress
- 하이퍼레저패브릭
- Today
- Total
목록Java (52)
A sentimental robot
public class Test01 implements Runnable { private int pay; public Test01() { pay = 10000; } @Override public synchronized void run() { for(int i=0; pay!=0 ;i++){ try{ Thread.sleep(1000); pay-=1000; System.out.print(Thread.currentThread().getName()); System.out.println(" 현재금액 : " +pay); // 이 두 개의 메소드는 동기화 처리에서만 사용가능 notify(); // son Thread에게 넘겨줌 wait(); // wait를 나중에 선언, mom Thread는 멈춤 }catch(Inte..
public class Test01 extends Thread { // 스레드 쓰는 방법1. Thread 객체 상속받기 public static void main(String[] args) { Test01 t01 = new Test01(); t01.start(); // 대기상태 ; runnable state } } public class Test02 implements Runnable { // 방법2. Runnable interface를 상속 받아서 스레드가 아니라 스레드를 쓸 수 있는 환경을 만든다. public static void main(String[] args) { Test02 t02 = new Test02(); // t02.start(); t02는 스레드가 아니기 때문에 못부름 Thread t..
Inner class 란? 클래스 안에 클래스를 가지고 있는 구조 has a 관계는 항상 객체가 독립적이지만 inner class는 애초에 클래스 안에 클래스를 가진다. outer class의 ( private이든 뭐든 )멤버를 자유롭게 사용할 수 있다. 이벤트 처리할때 많이 쓰인다. outer class를 생성한 후, inner class를 따로 생성해야 한다. 종류 1) member class( instance class ) -> 가장 많이 쓰임 2) static class 3) local class 4) anonymous class -> 가장 많이 쓰임, 이벤트 처리 시 주로 사용, 추상클래스와 같이 사용됨 member class public class InnerTest { private int a..
Interface - 상수와 추상메소드로만 이루어져 있다. - 다중 상속이 가능하다. public interface Aa extends B { // 인터페이스끼리도 extends로 상속 가능, but 다중상속가능 final static int A = 10; // 상수니까 변수이름이 대문자이다. final은 생략가능, 상수는 선언과 동시에 초기화한다. abstract void disp(); // 추상메소드 abstract 생략가능 } public interface B { abstract void disp2(); } public class CC implements Aa, B { // 인터페이스를 상속받을 때는 implements 를 쓴다. 인터페이스는 다중상속이 가능하다. @Override public vo..
public abstract class Memory { protected int[] array; // protected 접근지정자는 상속받은 자식들만 쓸 수 있음 protected int top; public Memory(){ array=new int[10]; top=0; } public void push(int num){ array[top++]=num; } public abstract int pop(); // 추상 메소드 } public class MyStack extends Memory { @Override public int pop() { return array[--top]; } } public class MyQueue extends Memory { private int front; public M..
final을.. 상수(field)에 붙히면 고정 -> 상수화 객체(class)에 붙히면 상속관계 불가 메소드에 붙히면 Overriding 불가 추상클래스 추상메소드를 한 개 이상 가지고 있는 클래스를 추상클래스라고 한다. 구체화가 안되어있기 때문에 객체를 만들지 못한다. 오직 상속을 목적으로 쓰인다. 즉, 항상 부모 클래스가 된다. 추상클래스를 상속받은 클래스도 똑같이 객체를 만들지 못한다. ( 추상클래스를 상속 받음으로서 추상적인 부분이 생기기 때 문 ) -> Solution : 상속받은 구체화가 안된 부분을 오버라이딩을 통해 구체화 시킨다. 추상클래스를 상속받은 자식클래스들은 강제성을 부여받아 추상메소드들을 오버라이딩 해야한다. 그렇지 않을 경우 자식들도 추상클래스화 된다.( 추상메소드는 강제성을 지..
Overridding 부모의 멤버를 은닉 부모 + 내꺼 동적바인딩...★ public class AA { private String str; public AA(){ } public AA(String a){ str=a; } public void setStr(String str){ this.str=str; } public String getStr(){ return str; } } Use 1 public class DD extends AA{ public String getStr(){ // Overridding, 부모것을 숨기기위해 똑같이 만듬 return "superman&batman"; } public static void main(String[]args){ DD dd=new DD(); dd.setStr("..
public class AA { private String str; public AA(String a){ //AA생성자 overloading str=a; } public String getStr(){ return str; } } public class BB extends AA { private int aa; public BB(String a,int aa) { //BB 생성자 overloading super(a); // 부모클래스(AA)가 오버로딩 되었으니 명시적으로 적어준다. this.aa=aa; } public int getAa(){ return aa; } } public class CC extends BB { public CC(String a, int aa) { super(a, aa); } publi..