JAVAの基礎についてのいくつかの総括


藍傑はもう2ヶ月近く勉強して、もう五子棋のデザインをしています.
今日は前に勉强した基础的なことをまとめてみました.
1.javaファイルの基本構造、コンパイル-->プロセスの実行
1.javaファイルの基本構造、コンパイル-->プロセスの実行
各javaファイルは1つのクラス(またはインタフェース)であり、javaのプログラムは1つ以上のクラス(インタフェース、抽象クラス)から構成されていますが、これらのクラスにはmain関数が1つしかありません.javaファイルの接尾辞は.javaで、cdコマンドラインにcdコマンドを入力してソースコードのあるフォルダに切り替え、
javac ***.java
プログラムをコンパイルすると、コードはハードウェアプラットフォームやオペレーティングシステムに関係のないバイナリコード(.class)に変換され、
java ***
に表示されます.
2.基本タイプ:int char byte float double short long boolean
JAvaの基本タイプのいくつかはC/C++のデータ型とは異なり、shortとcharタイプは16 bits、intとfloatタイプは32 bits、longとdoubleは64 bitsであり、特殊なboolean型は1ビットしかない.
配列タイプ:
参照タイプ(クラスタイプ):
この文javabasic jb=new javabasic()のように;
参照タイプはnewの1つのもので、スタックメモリの中で彼のために1つの空間を申請して、javabasic jbはスタックメモリの中でjbのために1つの空間を申請して、その中の=はスタックメモリのアドレスをjbの値に割り当てます.したがって,参照タイプが伝達するのはnewのjavabasic()の値ではなく,そのアドレスである.
以下にjavaにおける各データ型を示す.langに対応するクラス;
   int ---->Integer            Integer te = new Integer(10);   int t=10;
   char--->Character
   byte--->Byte
   ...    --->...
3.クラスとオブジェクトの関係分析
クラスはいくつかの同じ属性と方法を持つ抽象的な事物であり、対象はクラスのインスタンス化であり、クラスの具体的な表現である.
4.クラス(属性、メソッド)の定義方法
クラスを定義し、名前を決定し、プロパティとメソッドを与える必要があります.
クラスを定義するときにpublicなどのアクセス制限子を与えます.すなわち、次のようにします.
public class ***{
}
必要に応じてプロパティとメソッドを定義する必要があります(次の例).
属性:private int a;
方法:public int b(int x){
}(戻りタイプがある場合はカッコにreturn文が必要です)
5.オブジェクトの作成方法:newコンストラクタ;
各クラスにはデフォルトでコンストラクタが1つあります(クラス名と同じで戻り値は表示されません).したがって、オブジェクトを作成するときにnewでスペースを作成し、オブジェクトのデータを格納できます.具体的な方法は、次のとおりです.
ClassName abc = new ClassName();
6.オブジェクトは、定義されたクラスとその親クラスで宣言されたメソッドのみを呼び出すことができます.
7.構造方法の役割、特徴、構造方法と一般方法の違い
構築方法の名前はクラス名と同じで、戻り値(実際には戻り値は作成したオブジェクトのヒープメモリ内のアドレス)を書かずにパラメータを入力できます.構築方法の役割は、クラスのオブジェクトを構築し、作成時にクラスにパラメータを入力することです.一般的な方法では、戻り値タイプ(または戻り値タイプvoidがないことを示す)を書く必要があります.また、一般的な関数はクラス名と同じではありません.
8.継承が必要な理由どのように継承しますか?何に受け継がれたの?
クラスを定義したが、その後、特定のメソッドと属性がこのクラスと異なるクラスを使用する場合は、クラスを再定義する必要がある可能性があります.この過程で私たちはすでに書いたコードをもう一度書かなければならないかもしれません.これは無駄で、不要なメモリ空間を占有します.そして、コンピュータは現実を反映するツールとして、現実と同じように継承してこそ、現実をよりよく反映し、現実に作用することができます.だから私は継承を通じてこれらの問題を避けることができます.
キーワードextendsで継承できます.具体的には、次のとおりです.
  public class A extends B{
  }
子クラスを継承することで親クラスのプロパティとメソッドが得られます.
9.クラス、抽象クラス、インタフェースの特徴、区別
継承するカテゴリは以下の3種類あります
1クラス継承クラス
     public class A {}
    public class B extends A{}
2クラス継承抽象クラス
    public abstract class C{}
   public class D extends C{}
3インタフェース継承インタフェース
   public interface E{}
   public interface F
    public interface G extends E,F{}
次に、インスタンス化の方法を示します.
public class H implements E{}
  public abstract class J implements E{}
public class K extends A implements E,F{}
10.メソッドのリロードと書き換え?
メソッドの書き換えとは、クラスが親クラスを継承し、独自のクラスでメソッドのメソッドボディを変更したが、メソッドの定義は変更されない(メソッドの名前、戻り値、パラメータを含む)ことを意味します.
メソッドのリロードとは、1つのクラスで1つのメソッド名を複数回使用することですが、それらの戻り値、パラメータ、メソッドボディが異なります.
11.自動転換と強制転換?
12.多態の理解?
同じタイプのオブジェクトが同じメソッドを呼び出す場合、継承、書き換え、リロードのメカニズムにより、得られる結果は必ずしも同じではありません.例えば、グラフィックボードのプログラムに現れるものが特に際立っています.
13.一般的なインタフェース開発コンポーネント
   java.awtは、ユーザインタフェースの作成およびグラフィック画像の描画に使用されるすべてのクラスを含み、AWTが提供するグラフィック機能は、様々な汎用オペレーティングシステムが提供するグラフィック機能の交差である.
   javax.swingはAWTに基づいて構築された新しいグラフィックインタフェースシステムであり、AWTが提供できるすべての機能を提供し、純粋なJavaコードでAWTの機能を大幅に拡張した.
コンテナアセンブリJFrame,JApplet,JDialog,JPanel(軽量コンテナ)
要素コンポーネント
14.イベント傍受メカニズムの理解
1)リスニングされたイベントソースオブジェクトの検索
2)必要なリスニングイベントに応じて対応するリスナーインタフェースを実現する
3)リスナーオブジェクトの作成
4)Listenerオブジェクトをイベントソースオブジェクトにバインドする
15、一般的なListener:
ActionListener
MouseListener
MouseMotionListener
MouseWheelListener
KeyListener
16.配列:
配列の定義方法
int t[]  = new int[10];
int t[]  = new int[]{1,2,3,4,5,6};
int t[]  = {1,2,3,4,5,6};
int[][] a = new int[10][8];
int[] a[] = new int[10][8];
17カスタムキューインプリメンテーション:長さ可変配列
public class QueueRealize<E> implements queueinterface<E>{
	
	//        
	private Object[] a = new Object[0];
	
	/**
	 *             
	 * @param s :      
	 */
	public void add(E e){
		//           1    
		Object[] b = new Object[a.length+1];
		//          
		b[b.length-1]=e;
		//                 
		for(int i=0;i<b.length-1;i++){
			b[i]=a[i];
		}
		//            
		a=b;
	}
	
	/**
	 *          
	 * @param index :       
	 * @return 
	 */
	public E getData(int index){
		E str =(E) a[index];
		return str;
	}
	
	/**
	 *        
	 * @return
	 */
	public int retSize(){
		int p = a.length;
		return p;
	}
	
	/**
	 *              
	 * @param s :    
	 * @param index :        
	 */
	public void insert(E e,int index){
		//           1    
		Object[] b = new Object[a.length+1];
		for(int i=0;i<a.length;i++){
			if(i<index)
				b[i]=a[i];
			else
				b[i+1]=a[i];
		}
		b[index]=e;
		//            
		a=b;
	}
	
	/**
	 *            
	 * @param s :     
	 * @param index :         
	 */
	public void modify(E e,int index){
		a[index]=e;
	}
	
	/**
	 *          
	 * @return
	 */
	public E pop(){
		E str = (E)a[0];
		//           1    
		Object[] b = new Object[a.length-1];
		for(int i=0;i<b.length;i++){
			b[i]=a[i+1];
		}
		//            
		a=b;
		return str;
	}
}

18.値伝達と参照伝達の理解
値の転送:
int a=10;
int b=a;
b=5;
そして、このときaは、b=aの過程でaの値がbに与えられただけであるため、10である.
リファレンス伝達は、前のリファレンスタイプの解釈と同様に、すなわち、伝達時にaのアドレスを
bのメモリ位置に格納され、bが変わるとaも変わる.