1. 程式人生 > 實用技巧 >三.JAVA類(學起來是真的累)

三.JAVA類(學起來是真的累)

JAVA類

JAVA中類名的首字線大寫

一個完整的類如下:

package 包名:

class 類名 extends 父類 implements 介面名{

  成員變數:

  構造方法:

  成員方法:

成員方法的定義

public 返回資料型別 方法名 (引數列表){

  語句;//方法(函式)主體

 1 public class day02 {
 2     public static void main(String []args) {
 3         //建立了一個Mymath的物件
 4         Mymath mymath1=new Mymath();
 5         //
呼叫mymath類裡面的speack方法 6 mymath1.speack(); 7 //呼叫可以傳入引數的計算方法 8 mymath1.jiSuan(10); 9 //呼叫計算兩個數和的方法 10 mymath1.add(10, 10); 11 } 12 } 13 14 15 class Mymath{ 16 //以下我們稱之為成員變數或者叫成員屬性 17 int age; 18 String nameString; 19 String colorString; 20 //沒有返回數就用void,請注意:方法名的首字母是小寫的
21 //以下就是成員方法 22 public void speack() { 23 System.out.println("我是一個好人"); 24 } 25 //帶引數的成員方法 26 public void jiSuan(int n) { 27 int a=0; 28 for (int i = 0; i <=n; i++) { 29 a=a+i; 30 } 31 System.out.println("從0加到"+n+"結果是:"+a); 32 }
33 //計算兩個數的和的方法 34 public void add(int num1,int num2) { 35 int rue=0; 36 rue=num1+num2; 37 System.out.println(num1+"+"+num2+"="+rue); 38 } 39 }

類的成員方法,構造方法,成員變數

 1 public class day02 {
 2     public static void main(String []args) {
 3         //建立一個computer的物件
 4         Computer c1=new Computer();
 5         //建立了一個Mymath的物件
 6         Mymath mymath1=new Mymath(c1,23,"測試","紅色");
 7         //呼叫mymath類裡面的speack方法
 8         mymath1.speack();
 9         //呼叫可以傳入引數的計算方法
10         mymath1.jiSuan(10);
11         //呼叫計算兩個數和的方法
12         mymath1.add(10, 10);
13         //呼叫有返回型別的方法
14         //在呼叫某個成員方法的時候,給出的具體數值的個數和型別要相匹配
15         System.out.println("P1="+mymath1.add2(30, 3.1f));
16         //建構函式的呼叫方法
17         System.out.println(mymath1.teall);
18         
19         mymath1.computer.off();
20     }
21 }
22 
23 
24 class Mymath{
25     //以下我們稱之為成員變數或者叫成員屬性
26     int age;
27     String nameString;
28     String colorString;
29     Computer computer;
30     static int teall=0;
31     //以下是構造方法
32         public Mymath(Computer computer,int age,String nameString,String colorString) {
33             this.age=age;
34             this.nameString=nameString;
35             this.colorString=colorString;
36             this.computer=computer;
37         }
38     //沒有返回數就用void,請注意:方法名的首字母是小寫的
39     //以下是成員方法 
40     public void speack() {
41         System.out.println("我是一個好人");
42     }
43     //帶引數的成員方法
44     public void jiSuan(int n) {
45         //int a=0;
46         for (int i = 0; i <=n; i++) {
47             teall=teall+i;
48         }
49         System.out.println("從0加到"+n+"結果是:"+teall);
50     }
51     //計算兩個數的和的成員方法
52     public void add(int num1,int num2) {
53         int rue=0;
54         rue=num1+num2;
55         System.out.println(num1+"+"+num2+"="+rue);
56     }
57     //計算兩個數的和,並且反結果返回給呼叫它的函式
58     //帶返回的值,返回的是什麼型別的值就寫什麼型別的值
59     public float add2(int num1,float num2) {
60         return num1+num2;
61     }
62 }
63 class Computer{
64     int money;
65     String nameString;
66     String pipaiString;
67     String typeString;
68     
69     public void off(){
70         System.out.println("開啟");
71     }
72 }

類的多型,繼承

  1 public class day05 {
  2     public static void main(String []args) {
  3         /*Ccat ccat=new Ccat();
  4         ccat.cry();
  5         Ddog ddog=new Ddog();
  6         ddog.cry();*/
  7         //多型
  8         /*Animal animal=new Ccat();
  9         animal.cry();
 10         animal=new  Ddog();
 11         animal.cry()/*/
 12         Master master=new Master();
 13         master.feed(new Dog(), new Bone(),new Wanj());
 14         master.feed(new Ccat(), new Fish(),new Wanj());
 15     }
 16 }
 17 //定義一個人類
 18 class Master
 19 {
 20     public void feed(Animal an,Food fn,Wanj wn) {
 21         an.cry();
 22         fn.showName();
 23         wn.showNnme();
 24     }
 25 }
 26 //定義一個玩具類
 27 class Wanj
 28 {
 29     String nameString;
 30     public void showNnme() {
 31         System.out.println("我不知道是什麼玩具");
 32         
 33     }
 34 }
 35 //定義一個食物父類
 36 class Food
 37 {
 38     String nameString;
 39     public void showName() {
 40         System.out.println("我不知道是什麼食物");
 41     }
 42 }
 43 //這是食物魚
 44 class Fish extends Food{
 45     public void showName() {
 46         System.out.println("這是吃的魚");
 47     }
 48 }
 49 //這是食物骨頭
 50 class Bone extends Food {
 51     public void showName() {
 52         System.out.println("這是吃的骨頭");
 53     }
 54 }
 55 //動物類 
 56 class Aanimal
 57 {
 58     private String nameString;
 59     private int age;
 60     public String getNameString() {
 61         return nameString;
 62     }
 63     public void setNameString(String nameString) {
 64         this.nameString = nameString;
 65     }
 66     public int getAge() {
 67         return age;
 68     }
 69     public void setAge(int age) {
 70         this.age = age;
 71     }
 72     //動物叫
 73     public void cry() {
 74         System.out.println("不知道怎麼叫");
 75         
 76     }
 77     public void eat() {
 78         System.out.println("不知道吃什麼");
 79     }
 80 }
 81 //繼承了父類並重寫或者叫覆蓋了成員方法
 82 class Ccat extends Animal
 83 {
 84     public void cry() {
 85         System.out.println("貓貓叫");
 86     }
 87     public void eat() {
 88         System.out.println("貓愛吃魚");
 89     }
 90 }
 91 
 92 class Ddog extends Animal
 93 {
 94     public void cry() {
 95         System.out.println("狗狗叫");
 96     }
 97     public void eat() {
 98         System.out.println("狗受吃骨頭");
 99     }
100 }

抽象類

 1 public class day06 {
 2     public static void main(String []args) {
 3         Doog dog=new Doog();
 4         dog.cry();
 5     }
 6 }
 7 //當你不知道父類的方法不知道怎麼寫的時候就用抽象類
 8 //在類的前面加上關鍵字,abstract  
 9 //初始化構造方法,必須加上成員引數
10 //成員方法加上括號,裡面可以放參數,做為介面來用
11 //下面就是抽象類的寫法
12 abstract class Naimal
13 {
14     String nameString;
15     int age;
16     //這是抽象類方法
17     abstract public void cry();
18 }
19 //當一個類繼承的父類是抽象類,必須把抽象類中的所有抽象方法全部實現
20 //以下繼承了抽象類Naimal所以必須實現抽象類中的所有方法
21 class Doog extends Naimal{
22     //以下例項化了Naimal類中的抽象方法cry
23     public void cry() {
24         System.out.println("我不知道怎麼叫");
25     }
26 }

介面

 1 /**
 2  * 類裡面: 介面的申明,介面的方法
 3  */
 4 package com.test1;
 5 
 6 public class day07 {
 7     public static void main(String []args) {
 8         //定義一臺電腦
 9         Computer computer=new Computer();
10         //定義一臺相機
11         Camera camera=new Camera();
12         //定義一部手機
13         Phone phone =new Phone();
14         //把USB埠給手機和相機用
15         computer.useUSB(phone);
16         computer.useUSB(camera);
17         
18     }
19 }
20 //定義一個USB介面,介面名首字母大寫
21 //interface是定義介面的意思
22 //一個介面不能繼承其它類,但是可以繼承其它介面
23 interface Usb{
24     //申明兩個方法
25     //介面中的變數初始貨必須給值
26     int a=1;
27     public void start();
28     public void stop();
29 }
30 //定義一個相機類,並實現Usb介面
31 //一個重要原則:當一個類實現了一個介面,就要把這個類的所有方法全部實現
32 //implements 是實現介面的意思
33 class Camera implements Usb{
34     //實現Usb中start方法
35     public void start() {
36         System.out.println("我是相機,開始工作");
37     }
38     //實現USB中stop方法
39     public void stop() {
40         System.out.println("我是相機,停止工作");
41     }
42 }
43 //編寫一個手機類並且繼承Usb介面,並把USB裡面的方法全部實現
44 class Phone implements Usb{
45     //實現USB中start方法
46     public void start() {
47         System.out.println("我是手機,我開始工作了");
48     }
49     //實現USB中stop方法
50     public void stop() {
51         System.out.println("我是手機,我停止工作了");
52     }
53 }
54 //定義一個電腦類並開始使用
55 //定義類名時首字母大寫
56 class Computer{
57     public void useUSB(Usb usb) {
58         usb.start();
59         usb.stop();
60     }
61 }

把埠應用到類中,通過implements實現

 1 /**
 2  * 繼承中埠的應用
 3  */
 4 package com.test1;
 5 
 6 
 7 public class day08 {
 8     public static void main(String []args) {
 9         Xmonkey xmonkey=new Xmonkey();
10         xmonkey.Fly();
11         xmonkey.Dly(15, 10);
12     }
13 }
14 //定義了一個猴子類
15 class Monkey{
16     String namString;
17     //
18     public void jump() {
19         System.out.println("猴子會跳");
20     }
21 }
22 
23 
24 //一中小猴子繼承老猴子的功能 用implements繼承了鳥和魚的方法,並實現功能
25 class Xmonkey extends Monkey implements Ber,Feny{
26 
27     //實現了鳥的功能
28     @Override
29     public void Fly() {
30         // TODO Auto-generated method stub
31         System.out.println("我會飛");
32     }
33     //實現在魚的功能並會計算
34     @Override
35     public void Dly(int a,int b) {
36         // TODO Auto-generated method stub
37         System.out.println("我會跳水");
38     
39         System.out.println(a+b);
40         
41     }
42     
43 }
44 
45 //定義一隻鳥的埠,並且這隻鳥有一會飛的FLY方法
46 interface Ber{
47     public void Fly();
48 }
49 //定義一隻魚的埠,並且這隻魚有一個會遊Dly的方法
50 interface Feny{
51     public void Dly(int a,int b);
52 }

final修飾的用法,能讓成員方法不被覆蓋,成員變數不被改變,類不能被繼承

 1 /**
 2  * 繼承中埠的應用
 3  */
 4 package com.test1;
 5 
 6 
 7 public class day08 {
 8     public static void main(String []args) {
 9         Xmonkey xmonkey=new Xmonkey();
10         xmonkey.Fly();
11         xmonkey.Dly(15, 10);
12         xmonkey.jump();
13         Kan kan=new Kan();
14         kan.don();
15     }
16 }
17 //定義了一個猴子類
18 class Monkey{
19     String namString;
20     //
21     public void jump() {
22         System.out.println("猴子會跳");
23     }
24 }
25 
26 
27 //一中小猴子繼承老猴子的功能 用implements繼承了鳥和魚的方法,並實現功能
28 class Xmonkey extends Monkey implements Ber,Feny{
29 
30     //實現了鳥的功能
31     @Override
32     public void Fly() {
33         // TODO Auto-generated method stub
34         System.out.println("我會飛");
35     }
36     //實現在魚的功能並會計算
37     @Override
38     public void Dly(int a,int b) {
39         // TODO Auto-generated method stub
40         System.out.println("我會跳水");
41     
42         System.out.println(a+b);
43         
44     }
45     
46 }
47 //定義一個Pan,並把 方法用final修飾一下,final可以讓變數和成員方法不能被修改和覆蓋
48 class Pan
49 {
50      final int a=0;
51     final public void jon() {
52         System.out.println("我會發送資訊");
53     }
54 }
55 //新建一個類,繼承pan類,檢視fianl修飾過的方法能改變嗎,被FINAL修飾過的類也不能被繼承
56 class Kan extends Pan
57 {
58     
59     public void don()
60     {
61         //a++; //這個地方我們已經看出報錯,說明FINAL修飾起作用了
62         System.out.println("a的值是:"+a);
63     }
64     /*public void jon() //這個地方法繼承PAN類後重寫JON方法就報錯了,說明final修飾起作用了
65     {
66         System.out.println("看方法能不能被重寫");
67     }*/
68 }
69 
70 //定義一隻鳥的埠,並且這隻鳥有一會飛的FLY方法
71 interface Ber{
72     public void Fly();
73 }
74 //定義一隻魚的埠,並且這隻魚有一個會遊Dly的方法
75 interface Feny{
76     public void Dly(int a,int b);
77 }