Java生活コード-21.111.11


1. API


import java.lang.*;
System.out.println(1);
  • システム:
  • クラス
  • out:クラス内のフィールド(変数)、オブジェクト(フィールドにメソッドがある)、および静的(システムをインスタンス化したことがない)は、フィールドout
  • にアクセスできます.
  • println:メソッド
  • java.lang:Javaプログラミングに必要なクラスを含むパッケージ(自動ロード)
  • ===>Javaでアプリケーションを作成します.これは、Javaが提供するパッケージをコンポーネントとしてアセンブリし、カスタムロジックを作成することを意味します.
  • API:Javaが提供する制御システム用のコマンド(パッケージjava.lang.*のクラスもJavaが提供するAPIの1つ)
  • java.lang
    Javaプログラミングに使用される最も基本的なパッケージとクラスが含まれています.
  • java.util
    制御プログラム用のクラスと、データを効率的に格納するためのクラスが含まれます.
  • java.io
    キーボード、ディスプレイ、プリンタ、およびファイルを制御するクラス
  • .
  • java.net
    通信機能があります.
  • 2.アクセス制御者

  • クラスメンバー(変数とメソッド)のアクセス権を指定する
  • class A {
        public String y(){
            return "public void y()";
        }
        private String z(){
            return "public void z()";
        }
        public String x(){
            return z();
        }
    }
    public class AccessDemo1 {
        public static void main(String[] args) {
            A a = new A();
            System.out.println(a.y());
            // 아래 코드는 오류가 발생한다.
            //System.out.println(a.z());
            System.out.println(a.x());	// public -> private 가능
        }
    }
  • の共通クラスを含む小さなコードには、共通クラスのクラス名とソースコードのファイル名が必要です(PublicNameDemo.java->共通クラスPublicNameDemo{})
    =>ソースコードに共通クラス
  • があります.
  • アクセス制御者は共通クラスであり、他のパッケージのクラスにも使用可能である.デフォルトでは、同じパッケージでのみ
  • が使用可能である.
    package org.opentutorials.javatutorials.accessmodifier.inner;
    public class PublicClass {}
    class DefaultClass {}
    package org.opentutorials.javatutorials.accessmodifier.outter;
    import org.opentutorials.javatutorials.accessmodifier.inner.*;
    public class ClassAccessModifierOuterPackage {
        PublicClass publicClass = new PublicClass();
        //DefaultClass defaultClass = new DefaultClass();	// 다른 패키지이므로 사용 불가
    }

    3.抽象(抽象)

  • 抽象クラスまたはメソッドを使用するには、
  • を強制的に継承し、使用する必要がある(規制)
  • 抽象メソッド:メソッドの一意のフラグを定義した空のメソッド
  • の抽象メソッドを含むクラスは抽象クラス(クラス名の前に抽象を付ける)
  • になります.
    abstract class A{
        public abstract int b();
        //본체가 있는 메소드는 abstract 키워드를 가질 수 없다.
        //public abstract int c(){System.out.println("Hello")}	// 오류 발생
        //추상 클래스 내에는 추상 메소드가 아닌 메소드가 존재 할 수 있다. 
        public void d(){
            System.out.println("world");
        }
    }
    public class AbstractDemo {
        public static void main(String[] args) {
            A obj = new A();	// 추상 클래스 A를 인스턴스화하면 오류가 발생 (추상 클래스는 구체적인 메소드의 내용이 존재하지 않기 때문)
        }
    }
  • 抽象クラスの継承:Aクラスを継承するサブクラスを作成し、抽象メソッドを上書きすることによって内部メソッド
  • を作成する必要があります.
    abstract class A{
        public abstract int b();
        public void d(){
            System.out.println("world");
        }
    }
    class B extends A{
        public int b(){return 1;}
    }
    public class AbstractDemo {
        public static void main(String[] args) {
            B obj = new B();
            System.out.println(obj.b());
        }
    }
  • の場合によっては、異なる操作方法(sum,avg)が抽象的な方法として作成され、サブクラスで実装され、すべてのクラスの共通分母(setopprands,run)が親クラスに配置され、コードの重複性、メンテナンスの利便性などを実現することができる.
  • 設計モード:常用テンプレート形状の集合(繰返しモード整理)
  • 良好な設計、短期間の学習
  • は、
  • とのコミュニケーションに役立ちます.

    4. final

  • 相続禁止/変更
  • finalフィールド:
  • 値が決定された後に変数の値が変更されないことを保証する規制
    class Calculator {
        static final double PI = 3.14;	// final 선언
        int left, right;
     
        public void setOprands(int left, int right) {
            this.left = left;
            this.right = right;
            //Calculator.PI = 6;	// 변경 안됨
        }
    }
     
    public class CalculatorDemo1 {
     
        public static void main(String[] args) {
     
            Calculator c1 = new Calculator();
            System.out.println(c1.PI);
            //Calculator.PI = 10;	// 변경 안됨
        }
     
    }
  • finalメソッド:あまりよく使われない
  • class A{
        final void b(){}
    }
    class B extends A{
        void b(){}		// 상속 안됨
    }
  • finalクラス
  • final class C{
        final void b(){}
    }
    class D extends C{}	// 상속 안됨

    5.インタフェース

  • オブジェクトがインタフェースを使用する場合、オブジェクトはこれらのインタフェースメソッドを実装する必要があります.
  • クラスの後のimplementsは、インタフェース
  • を実装していることを示す.
  • が親を継承する機能が子を継承する場合、インタフェースは、特定のメソッド
  • が子を強制する.
    宣言
  • クラスはclassを使用し、インタフェースはインタフェース
  • を使用する.
    interface I{
        public void z();
    }
     
    class A implements I{
        public void z(){}	// 반드시 존재해야함
    }
  • インタフェースを使用して、互いに同じ方法を作成し、共有するために、
  • がアプリケーション構築されると同時に、誰もが相手のスケジュールや実施形態の影響を受けないようにします.
    package org.opentutorials.javatutorials.interfaces.example2;
     
    public interface Calculatable {
        public void setOprands(int first, int second, int third) ;
        public int sum(); 
        public int avg();
    }
    package org.opentutorials.javatutorials.interfaces.example2;
    class CalculatorDummy implements Calculatable{
        public void setOprands(int first, int second, int third){
        }
        public int sum(){
            return 60;
        }
        public int avg(){
            return 20;
        }
    }
    public class CalculatorConsumer {
        public static void main(String[] args) {
            CalculatorDummy c = new CalculatorDummy();
            c.setOprands(10, 20, 30);
            System.out.println(c.sum()+c.avg());
        }
    }
  • クラスは、複数のインタフェース
  • を実装することができる.
  • インタフェースは、
  • を継承することもできる.
  • インタフェースのメンバーはpublic(省略もpublic)
  • でなければならない.
  • インタフェース:インタフェースは一意で、クラスではなく、具体的な論理または状態がありません.
    抽象クラス:一般クラス、特定の論理またはステータス
  • を有する可能性がある