国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Java基礎筆記-面向對象2

2019-11-15 00:12:01
字體:
來源:轉載
供稿:網友
java基礎筆記-面向對象2

構造函數:(當類中沒有定義構造函數時,系統會默認給該類加入一個空參數的構造函數)

格式:

class Person

{

  Person(){} //空參數

}

1.函數名與類名相同,

2,不定義返回值類型,即不能寫return語句.

作用:給對象進行初始化.

與一般函數的區別:

1.構造函數 只執行一次,其他函數可以被執行多次.

構造代碼塊:

構造代碼塊,給對象進行初始化,對象一建立就運行,且優先于構造函數

與構造函數的區別:

相同點是,都是給對象進行初始化使用的.

構造代碼塊是給所有對象進行初始化的,而構造函數是給對應的對象進行初始化.

構造代碼塊中定義的是不同對象的共性的初始化內容.格式:

例如:{System.out.

this關鍵字:

作用:用于區別成員變量與局部變量 同名的情況.

例如:

class Person{

String name; //--->成員變量name.

Person(String name) //--->局部變量ame.

{

  this.name=name; // this.name ===>中的name指的就是成員變量的name.

  name = name; //如果這樣定義,這兩個name都是局部變量name.

}

}

this代表它所在類的所屬對象的引用,

通俗來講:即哪個函數調用this所在的函數,this就代表哪個對象.

有關this關鍵字,構造函數和構造代碼塊的相關代碼演示.

 1 class Person 2 { 3     private int age; 4     private String name ; 5     /* 6     構造代碼塊,給對象進行初始化,對象一建立就運行,且優先于構造函數. 7     與構造函數的區別:構造代碼塊是給所有對象進行初始化的,而構造函數是給對應的對象進行初始化. 8     構造代碼塊中定義的是不同對象的共性的初始化內容. 9     */10     {11         System.out.println("構造代碼塊!");12         cry();13     }14     //構造函數15     Person()16     {17         System.out.println("A: name = "+name+"    age = "+age);18         //cry();19     }20     /*this: 關鍵字21     作用:用于區別成員變量與局部變量同名的情況.22     this代表它所在類的所屬對象的引用,即哪個函數調用this所在的函數,this就代表哪個對象.23     */24     Person(int age)25     {26         this.age = age;27         System.out.println("B: name = "+name+"    age = "+age);28         //cry();29     }30     Person(int age ,String name)31     {32         this.age = age;33         this.name = name;34         System.out.println("C: name = "+this.name+"    age = "+this.age);35         //cry();36     }37     38     /*39     this的應用:定義一個函數,比較兩個人年齡是否相同.40     */41     public boolean compare(Person p)42     {    43         return this.age == p.age;  //this.age中的this代表的是調用這個函數的對象. ===>77行中的對象p4調用了compare函數,this就是代表的p4.44     }45     46     //設置名字的函數47     public void setName(String name)48     {49         this.name = name;50     }51     //獲取名字的函數52     public String getName()53     {54         return name;55     }56     57     public void cry()58     {59         System.out.println("Cry--------!");60     }61 }62 63 class PersonDemo264 {65     public static void main(String args [])66     {67         Person p1 = new Person();68         Person p2 = new Person(10);69         Person p3 = new Person(5,"Tom");70         System.out.println(p3.getName());71         72         p3.setName("Paul");73         System.out.println(p3.getName());74         75         Person p4 = new Person(25);76         Person p5 = new Person(20);77         boolean b = p4.compare(p5);  78         System.out.println(b);79 80     }81 }

static關鍵字:

用于修飾成員變量(全局變量)和函數.

被static修飾的變量,叫類變量,也叫做靜態變量.

static成員變量只初使化一次,防止在其他文件單元中再被引用.

static局部變量和普通局部變量的區別:

1.把局部變量改變為靜態變量后,改變了它的存儲方式即改變了它的生存期.

2.把成員變量改變為靜態變量后,改變了它的作用域,限制了它的使用范圍.

static局部變量只被初始化一次,下一次依據上一次結果值; 

<什么時候定義靜態函數:當功能內部沒有訪問到靜態數據(對象的特有數據)時,該函數可以定義為靜態函數.>???

由于靜態函數在內存中只有一個實例,在使用過程中不需要再new實例化對象.這些類一般都是無狀態的,函數誰調用都是一樣的.

因此它們適用于工具類中.

工具類應用的有關代碼練習操作:

  1 /**  2 這是一個可以對數組進行操作的工具類,可以獲取最值,排序,打印等功能.  3 @author JerryHo  4 @version V1.0  5 */  6 //要生成幫助文檔,這個類必須是public的.  7 public class ArrayTool  8 {  9     //將構造函數私有化以后,可以強制該類不能建立對象 10     /** 11     空參數構造函數. 12     */ 13     private ArrayTool() 14     { 15         //系統會有個默認的構造函數 16     } 17     /** 18     獲取整型數組中的最大值. 19     @param arr 接收一個int類型的數組. 20     @return 返回該數組中的一個最大值. 21     */     22     public static int getMax(int arr[]) 23     { 24         int max=0; 25         for(int x=0; x<arr.length;x++) 26         if(arr[max]<arr[x]) 27         { 28             max = x; 29         } 30         return arr[max]; 31     } 32     /** 33     獲取整型數組中的最小值. 34     @param arr 接收一個int類型數組. 35     @return 返回該數組中的一個最小值. 36     */ 37     public static int getMin(int arr[]) 38     { 39         int min=0; 40         for(int x=0;x<arr.length;x++) 41         { 42             if(arr[min]>arr[x]) 43             { 44                 min = x; 45             } 46         } 47         return arr[min]; 48     } 49     /** 50     對int類型的數組進行選擇排序. 51     @param arr 接收一個int類型數組. 52     */ 53     public static void selectSort(int arr[]) 54     { 55         for(int x =0;x<arr.length-1;x++) 56         { 57             for(int y=x+1;y<arr.length;y++) 58             { 59                 if(arr[x]>arr[y]) 60                 { 61                     //int temp =arr[x]; 62                     //arr[x]=arr[y]; 63                     //arr[y]=temp; 64                     swap(arr,x,y); 65                 } 66             } 67         } 68     } 69     /** 70     對數組進行冒泡排序. 71     @param arr 接收一個int類型數組. 72     */ 73     public static void  bubbleSort(int arr[]) 74     { 75         for(int x=0;x<arr.length-1;x++) 76         { 77             for(int y =0;y<arr.length-1-x;y++) 78                 if(arr[y]>arr[y+1]) 79                 { 80                     //int temp =arr[y]; 81                     //arr[y]=arr[y+1]; 82                     //arr[y+1]=temp; 83                     swap(arr,y,y+1); 84                 } 85         } 86     } 87     /** 88     交換整型數組中的兩個變量的值. 89     @param arr 接收一個int類型數組. 90     @param a 要置換的位置. 91     @param b 要置換的位置. 92     */ 93     private static void swap(int[]arr,int x,int y) 94     { 95         int temp =arr[x]; 96         arr[x]=arr[y]; 97         arr[y]=temp; 98     } 99     100     /**101     打印整型數組中的元素.102     @param arr 接收一個int類型數組.103     打印形式為:[element1,element2,...]104     */105     public static void printArray(int arr[])106     {    107         System.out.print("[");108         for(int x=0;x<arr.length;x++)109         {110             if(x!=arr.length-1)111             {112                 System.out.print(arr[x]+",");113             }114             else115             {116                 System.out.println(arr[x]+"]");117             }118         }119     }120 }
 1 class ArrayToolDemo 2 { 3     public static void main(String args[]) 4     { 5         /* 6         int [] arr= new int[]{3,5,1,8,4,9,12}; 7         int [] arr1 = new int[]{9,3,6,18,13,4,23}; 8         ArrayTool at = new ArrayTool(); 9         10         int max = at.getMax(arr);11         System.out.println("max = "+max);12         13         int min =at.getMin(arr);14         System.out.println("min = "+min);15         16         at.printArray(arr);17         at.selectSort(arr);18         at.printArray(arr);19         20         at.printArray(arr1);21         at.bubbleSort(arr1);22         at.printArray(arr1);23         */24         25         //直接用類名調用有關的函數.26         int [] arr= new int[]{3,5,1,8,4,9,12};27         int [] arr1 = new int[]{9,3,6,18,13,4,23};28         29         int max = ArrayTool.getMax(arr);30         System.out.println("max = "+max);31         int min = ArrayTool.getMin(arr);32         System.out.println("min = "+min);33         34         int Max = ArrayTool.getMax(arr1);35         System.out.println("max = "+Max);36         int Min = ArrayTool.getMin(arr1);37         System.out.println("min = "+Min);38         39         ArrayTool.printArray(arr);40         ArrayTool.selectSort(arr);41         ArrayTool.printArray(arr);42         43         ArrayTool.printArray(arr1);44         ArrayTool.selectSort(arr1);45         ArrayTool.printArray(arr1);46         47         48     }49 }

昨天停了快一天的電,一晚上熱的沒睡好,早上起來就開始看,看完教程還得自己思考,好多地方不是很懂不過還是慢慢來把,感覺腦袋都有些僵硬了,看完視頻教程都快11點多了,又得做筆記,還得想想總結一天學的東西,然后敲代碼,編譯以后發現總是好多問題,又改來改去的看問題出現在哪里,一折騰就11點快12點了,在還得寫博客記錄,一天下來感覺又充實又累人,有種高三的感覺啊,洗澡睡覺去,明天還得繼續..hold on...!


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 晋城| 英吉沙县| 晴隆县| 宁津县| 延吉市| 都兰县| 乌拉特中旗| 沙雅县| 休宁县| 饶平县| 五华县| 固阳县| 卢氏县| 井冈山市| 绵阳市| 望奎县| 清新县| 五家渠市| 双城市| 开鲁县| 云龙县| 济南市| 邢台县| 云和县| 丰原市| 纳雍县| 寻甸| 五常市| 洛浦县| 军事| 钦州市| 中西区| 上杭县| 比如县| 巩留县| 巴楚县| 通州市| 盘山县| 渭源县| 福清市| 新巴尔虎右旗|