20/11/2


静的キー


クラスメンバーに貼り付けられるキーワード.
1.メンバー変数
2.メンバーメソッド
同じフレーム(クラス)から印刷されたインスタンスが異なる値と共通の値を有する場合がある.
class SmartPhone{
	// 개개인이 가지는 데이터(다양)
    // 객체 멤버 변수 역할
	private String model;
	private String color;
	private int price;
	
	// 모든 객체가 가지는 공통된 데이터 -> 정적멤버
	private static String manu; -> 정적 멤버변수
    
    // static변수의 getter, setter는 static메서드로 만든다.
	public static String getManu() {
		return manu;
	}
	public static void setManu(String manu) {
		SmartPhone.manu = manu;
	}
}

...
public static void main(String[] args) {
	// 핸드폰 3대
		
	SmartPhone.setManu("삼성");
    System.out.println(SmartPhone.getManu());

メモリからstatic(!図面)にアクセス

  • クラス・ロード:
  • クラス宣言コードをプリフェッチし、内容を理解するためのタスク
  • の静的キーワードを有するメンバに遭遇した場合、静的領域
  • に割り当てられる.
  • main()メソッドの実行
  • 静的使用せいてきしよう:作成から数世紀

    ...
    public static void main(String[] args) {
    	Robot r1=new Robot();
    	Robot r2=new Robot();
    	Robot r3=new Robot();
    	System.out.printf("총 개수 : %d개\n", Robot.count);
    		
    	}
    }
    
    // 로봇장난감 클래스
    class Robot{
    	private String name;
    	public static int count; // 편의상 public으로.
        
        public Robot() {
    		Robot.count++;
    	}
        
    	public String getName() {
    		return name;
    	}
    
    	public void setName(String name) {
    		this.name = name;
    	}
    	
    }

    小包


    クラスのコレクションの管理(物理フォルダ)
    クラス管理、クラス用途の明確化

    パッケージネーミング

  • すべての文字は小文字で書かれています.(ルール)
  • 空白禁止、数字禁止、特殊文字禁止>すべて英語で小文字!
  • は、世界中のすべてのパッケージに比べて重複しません.
    ドメイン
  • (重複を避けるのは難しい)
  • の使用
    たとえば,NAVERで開発したjavaコードパッケージはcomである.naver.xxxはこのように命名された.△グーグルの場合はcom.google.xxxを使用してください.
  • パッケージ名が重なると、他の人が作成したプロジェクトと矛盾する可能性があります.
  • では、少なくとも3つのステップが使用されます.たとえばtestはステップパッケージ、comです.testは2級パッケージ、comです.test.JAvaは3級パッケージです.

    パッケージの役割

    コースは異なり、クラス名を繰り返すことができます.

    他のパッケージのクラスを使用する場合は、インポートする必要があります。

    クラス名が重なると、まず現在のパッケージのクラス名が取得されます.他のパッケージのクラス名を使用する場合は、クラスの前にパッケージ名全体を書くことができます.ただし、importは同じ項目内のパケット(クラス)しか認識できません.
  • SmartPhone s1=new SmartPhone(); // 같은 패키지 내에
    com.test.aaa.SmartPhone s2=new com.test.aaa.SmartPhone(); // aaa패키지 내에

    継承


    クラスとクラスの間で、クラスが持つコード(メンバー変数、メンバーメソッド)の動作を継承します.親が持つコードを子に渡します.

    なぜ継承するのか。


    コードを再使用するために.

    乱数ジェネレータ


    Math.random()random()メソッド形式


    Random()Random()クラスシェイプ

    private static void m1() {
    	Random rnd=new Random();
    	System.out.println(rnd.nextInt()); // int범위 내에서 발생
        System.out.println(rnd.nextInt(10)); // 0~9범위 내에서 발생.
    }

    Objectクラス


    java.lang(javaベースパッケージ)にあります.ルートクラス(すべてのクラスの親)

    抽象クラス&抽象メソッド


    抽象クラス


    ひと組一般クラスの目的はオブジェクトを生成することであり,抽象クラスの目的はオブジェクトの動作を標準化することである.(オブジェクトを作成できません)継承関係では、クラスの親ロールが可能です.子供たちに抽象的な方法を強制的に作成させたい.抽象クラスのサブクラスは同じ方法を使用します.
    abstract class Monitor{ // 추상클래스의 선언
    }

    抽象メソッド


    抽象クラスで抽象メソッドを宣言した後、その抽象クラスを継承するクラスは抽象メソッドを実装する必要があります.
    abstract class Monitor{
    	// 멤버 구현
    	public String model;
    	public int price;
        
    	// 추상메서드 선언
    	public abstract void on();
    	public abstract void off();
    }
    
    class LG100 extends Monitor{
    	public void on(){
    		System.out.println("전원 On");
    	}
    	public void off(){
    		System.out.println("전원 Off");
    	}
    }