接口注意事項:
1.接口不能被實例化
2.接口中所有的方法都不能有主體 (不能有{ })
3.一個類可以實現多個接口
4.接口中可以有變量<但變量不能用PRivate和protected修飾>
附加:
接口中的變量,本質上都是static的,而且是final,不管加不加static修飾
在java開發中,常把經常用的變量定義在接口中,作為全局變量使用。
<訪問形式:接口名.變量名>
5.一個接口不能繼承其他的類,但是可以繼承別的接口
抽象類中可以有實現了的方法
接口中的方法一個都不能被實現
接口中定義變量有特殊要求
class 類名 implement 接口 {
方法;
變量;
}
小結:
接口是更加抽象的抽象的類
抽象類里的方法可以有方法體
接口里的所有方法都沒有方法體
接口體現了程序設計的多態和高內聚低耦合的設計思想
package com.test4;public class Test{ public static void main(String[] args){ } }interface Fish{ public void swimming(); } interface Bird{ public void fly(); }class Monkey{ int name; public void jump() { System.out.println("ABC"); } }class LittleMonkey extends Monkey implement Fish,Bird{ public void swimming(){ } public void fly(){ } }
java的繼承是單繼承(一個類最多只能有一個父類)
final可以修飾變量或方
使用final可以避免被子類修改:
class Aaa{ //給方法用final修飾,表示不可以被修改,不可被覆蓋 final public void sendMes() { System.out.println("發送消息"); } }
final使用:
1.當不希望父類的某個方法被子類覆蓋(override)時,使用final關鍵字修飾
2.當不希望類的某個變量的值被修改,可以用final修飾 <final public void xxx()>
如果一個變量是final,則必須賦初值,否則編譯不了
3.當不希望類被繼承時,可用final修飾 <final class xxx>
數組
一維數組
數組的必要性:
package com.test1;public class Demo5_1{ public static void main(String[] args){ //定義六個變量 //定義一個可以存放六個float類型的數組 float arr[]=new float[6]; //使用for循環賦值 //給數組的各個元素賦值 arr[0]=3; arr[1]=5; arr[2]=3.4f; arr[3]=2; arr[4]=50; //算總體重[遍歷數組] float all=0; for(int i=0;i<6;i++) { all+=arr[i]; } System.out.println("總體重是:"+all); } }
對象數組的使用:
package com.test1;import java.io.*;public class Demo5_2{ public static void main(String[] args){ //定義一個可以存放四只狗的對象數組 Dog dog[]=new Dog[4]; //給各個狗賦初值 //從控制臺輸入每個狗的信息[alt+j]快捷鍵 InputStreamReader isr=new InputStreamReader(System.in); BufferedReader br=new BufferedReader(isr); for(int i=0;i<4;i++) { dog[i]=new Dog(); System.out.println("請輸入狗名"); //從控制臺讀取狗名 String name=br.readLine(); //將名字賦給對象 dogs[i].setName(name); System.out.println(""); String s_weight=br.readLine(); float weight=Float.parseFloat(s_weight); //將名字賦給對象 dog[i].setWeight(weight); } //計算平均體重 //計算總體重 for(int i=0;i<4;i++) { allWeight+=dogs[i].getWeight(); } //計算平均體重 float avgWeight/dogs.length; System.out.println("總體重="+allWeight+"平均="+avgWeight) } }//定義一個狗類class Dog{ private String name; private float weight; public String getName(){ return name; } public void setName(String name){ this.name=name; } public float getWeight(){ return weight; } public void setWeight(float weight){ this.age=weight; } }
排序分類:
1、內部排序:
(交換式排序法、選擇式排序法、插入式排序法)
2、外部排序法:
(合并排序法、直接合并排序法)
交換式排序法:冒泡排序法、快速排序法
冒泡排序:
package com.test1;public class Demo5_3{ public static void main(String[] args){ int arr[]={1,6,0,-1,9}; //排序 //外層循環,它決定一共走幾趟 for(int i=0;i<arr.length-1;i++) { //內層循環,逐個比較,若前大于后則交換 for(int j=0;j<arr.length-1-i;j++) { if(arr[j]>arr[j+1]) { //換位 temp=arr[j]; arr[j]=arr[j+1]; arr[j+1]=temp; } }} //輸出最后結果 for(int i=0;i<arr.length;i++) { System.out.print(arr[i]+""); } 排序方法封裝到類中:class Bubble{ //排序方法 public void sort(int arr[]) { int temp=0; for(int i=0;i<arr.length-1;i++) { for(arr[j]>arr[j+1]) { temp=arr[j]; arr[j]=arr[j+1]; arr[j+1]=temp; } } }
調用:Bubble bubble=new Bubble();
bubble.sort(arr);
選擇排序法:
class Select{ //選擇排序 public void sort(int arr[]) { //默認第一個數最小 for(int j=0;j<arr.length-1;j++) { int min=arr[j]; //記錄最小數下標 int minIndxe=j; for(int k=j+1;k<arr.length;k++) { if(min>arr[k]) { //修改最小 min=arr[k]; minIndxe=k; } } }
插入式排序
將n個待排序的元素看成一個有序表和一個無序表,開始時有序表中只包含一個元素,無序表中有n-1個元素
class InsertSort{ //插入排序方法 public void sort(int arr[]) { for(int i=1;i<arr.length;i++) { int insertVal=arr[i]; //insertVal準備和前一個數比較 int index=i-1; while(index>=0&&insertVal<arr[index]) //將arr[index]向后移動 arr[index+1]=arr[index]; //讓index向前移動 index--; } //將insertVal插入到適當位置 arr[index+1]=insertVal; } }
多維數組
定義:
類型 數組名[][]=new 類型[大小][大小]
package com.test1;public class Demo5_5{ public static void main(String[] args) int a[][]=new int[4][6]; a[1][2]=1; a[2][1]=2; a[2][3]=3; //將圖形輸出 for(int i=0;i<4;i++) { for(int j=0;j<6;j++) { System.out.print(a[j]+""); } //換行 System.out.println(); } }
二進制(原碼、反碼、補碼):
1、二進制的最高位是符號位:0表示正數,1表示負數
2、正數的原碼、反碼、補碼都一樣
3、負數的反碼=符號位不變,其他位取反
4、負數的補碼=他的反碼+1
5、0的反碼、補碼都是0
6、java沒有無符號數
7、在計算機運算時候,都是以補碼的方式來運算的
算數右移:地位溢出,符號位不變,并用符號位補溢出的高位
算數左移:符號位不變,低位補0
集合:
java集合類主要有以下幾種:
1、List結構的集合類
ArrayList類,LinkedList類,Vector類,Stack類
2、Map結構的集合類
HashMap類,Hashtable類
3、Set結構的集合類
HashSet類,TreeSet類
4、Queue結構的集合
Queue接口
java集合的用法:
package com.test1;import java.util.*;public class Demo7{ public static void main(String[] args){ //定義ArrayList對象 ArrayList a1=new ArrayList(); //顯示大小 System.out.println("al大小:"al.size()); }}
新聞熱點
疑難解答