Java学習15日目

3001 ワード

  • 完全限定名(qualified class name)-クラスを使用する場合、クラス名が競合している場合は、そのパッケージ名を付けて区別できます.たとえば、org.homework.present.Person person 1=new org.homework.present.Person(「たたき」)です.org.homework.future.Person person 2=new org.homework.future.Person(「ハンマー」)
  • クラスは複数のインタフェースを実現することができ、インタフェースの中の方法はデフォルトの実現があれば、インタフェースを実現した後、
  • を書き直さなくてもよい.
  • インタフェースは、インタフェースを継承可能(多重継承可能)
  • である.
  • フラグインタフェース-メソッドはありませんが、クラスに何らかの能力を備えることができます
  • .
    /**
     *     
     * @author apple
     *
     */
    public interface Creature {
    
    }
    
  • instanceofで判断する場合、後でクラスを書くこともできるし、インタフェース
  • を書くこともできる.
    Arraysツールクラス
  • Javaにはarraysのツールクラスがあり、sortソート方法を呼び出すことができ、整数と文字列をソートすることができます.
  • Javaのツールクラスで、メソッドはすべて静的メソッドです.クラスに送信されたメッセージ
  • です
  • オブジェクトのセットをソートするにはsortメソッドを直接呼び出すことはできません.まず、そのオブジェクトが対するクラスにComparableインタフェースを実装し、compareToメソッドを書き換えます.次に、この方法では、プログラマ自身がオブジェクトのどの属性でソートするかを決定します.たとえば、
  • まず学生オブジェクトのグループを作成しました.
    Student[] array1 = {new Student("wang dachui", 15),
                    new Student("jack", 30),
                    new Student("qiao feng",50),
                    new Student("zhang sanfeng", 120)
                    }; 
            Arrays.sort(array1);
    

    compareToメソッドを書き直し、学生の年齢でソートする(名前でソートすることもできる)
  • はintタイプを返し、返された正負数は2つの比較要素が位置を変える必要がないとしか思わない.昇順するには、this-other、this compareTo other.降順、other-this、other compareTo this.
  • @Override
        public int compareTo(Student o) {   
            return this.age - o.age;
            //return this.name.compareTo(o.name);
        }
    

    ツールクラス
    ツール類は自分で書くこともできます
  • ツールクラスの要点を書きます:1.すべての方法は静的な方法であるべきです2.コンストラクタをプライベートにし、コンストラクタを呼び出してオブジェクトを作成することは許可されません3.ツールクラスの半分は継承されませんので、通常はfinalの
  • です.
  • finalの使い方1.メソッドの前にfinalを付け、メソッドを書き換えることができない2.クラスの前にfinalを付け、クラスを継承することができない3.変数の前にfinalを加え、変数が定数になり、
  • を割り当てることができない
    public final class CommonUtil {
        
        private CommonUtil(){
            throw new AssertionError();//   ,             
        }
        
        public static int randomInt(int min,int max){
            return (int) (Math.random() * (max - min + 1) + min);
        }
        
        public static Color RandmColor(){
            return new Color(randomInt(0, 255), randomInt(0, 255), randomInt(0, 255));
        }
    }
    

    オブジェクトのクローン
  • クローンオブジェクトnew+コンストラクタより
  • オブジェクトを作成し、Cloneableインタフェース
  • を実装
  • cloneメソッドを書き換えるサブクラス親メソッドを書き換える場合、親メソッドが保護されると、サブクラスは公開に変更され、
  • にアクセスできるようになります.
    @Override
        public Student clone()  {
            Student temp = null;
            try {
                temp = (Student) super.clone();
            } catch (CloneNotSupportedException e) {
                e.printStackTrace();
            }
            return temp;
        }
    
    public static void main(String[] args) {
            Student s1 = new Student("   ", 20);
            Student s2 = s1.clone();
            System.out.println(s1);
            System.out.println(s2);
            s2.setName("  ");
            s2.setAge(15);
            System.out.println(s2);
    
        }