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

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

回憶構造器及靜態變量

2019-11-08 03:27:43
字體:
來源:轉載
供稿:網友

今天學習主要學習的的是靜態變量的概念及其使用。下面是我關于靜態變量的一些看法。

靜態變量通俗的說是屬于類的屬性。如果一個類要進行實例化,通過實例可以調用靜態變量,類名也可以直接調用靜態變量。如果實例化兩個類的話。被static修飾的變量相當于是兩個公共的屬性。其中一個實例修改靜態變量的話。那么其他的實例再進行調用的話會調用被修改的那個實例。例如以下代碼就是可以清晰的顯示出靜態變量的的相關使用。變量a和變量b是靜態變量。大笑

public class Test1 {public static void main(String[] args) {System.out.PRintln(A.a);A a1 = new A();A a2 = new A();System.out.println("修改之前 "+a1.a);System.out.println("修改之前 "+a2.a);a1.a = 12;System.out.println("修改之后 "+a1.a);System.out.println("修改之后 "+a2.a);System.out.println("修改之前 "+a1.c);System.out.println("修改之前 "+a2.c);a1.show(34);System.out.println("修改之后 "+a1.c);System.out.println("修改之后 "+a2.c);B b1 = new B();b1.get();B.get1();b1.get1();

System.out.println("通過類名直接調用"+A.a);}}class A {static int a = 5;static int b = 7;int c = 45;public void show (int c) {this.c = c;}}class B {int a = 5;static int b = 45;public void get () {System.out.println(a);}static void get1 () {System.out.println(b);}}

同理可得,靜態方法的使用和概念是跟靜態變量相同的,可看成一個是靜態的屬性(靜態變量),一個是動態的屬性(靜態方法)。

構造器

 當然對于java,類的概念是重中之重,對于類的構造和對象的實現就需要用到構造器。

構造器具有初始化的作用。   例如public class Person(){     private string name;     private int number;     public Person(string n,int no){     name=n;     number=no;     }     public teach(){}     }   下面我們要對這個類的對象實例化:Person p = new Person();  以上就是構造器的語法了,這里用到了關鍵字來調用構造器。   new     講到這里還沒有什么可以困擾我們的地方,那么下面我們將借助有關繼續的一些例子來繼續闡述構造器問題:   假設publicclass People(){      private string name;      private int number ;      private int age;      public do(){}     }       有人也許會問為什么這個People類里面為什么沒有定義構造器?其實,java中的JVM已經我們定義了一個無參數的默認構造器,即People(){}   到這里為止,沒有任何問題,然而,一旦讓People繼承OldPeople并實例化,編譯器就會報錯:      public class People extendsOldPeople(){        private string name;        private int number ;        private int age;             public do(){}     public static void mian(string[] args){        OldPeople o=new OldPeople();     }   很抱歉你得到的是一條出錯的信息,有人問了,你說OldPeople的構造器是默認的我才這樣寫,沒錯,OldOldPeople確實存在這樣一個無參的構造器,這樣寫法換做OldPeople不做People的子類的情況下一定是正確的。       構造器的相關規則:  1.假如一個類沒有設置字定義構造器,那么編譯器會默認一個無參構造器。   2.在子類調用構造器時,優先調用父類的構造器。   3.假如自定義了構造器,那么默認構造器將不存在。      在上例中,OldPerson調用默認構造器前,編譯器自動調用父類Professer的默認構造器,然而,Person有了自定義構造器,所以默認構造器不存在了,編譯器報錯…………     那么我們該怎么做呢?像下面這樣就OK了。        public class People extends OldPeople(){         private string name;         private int number;         private int age;         OldPeople(string n,int no,int age){         super(n,no);         this.age=age;         }         public do(){}      }          這就是在子類中顯式的調用父類構造器,注重,super必須是{}中的第一個執行語句。其實我們還有另外一種方法,在People類里面補充一個消失掉的默認構造器,如下:        public class People(){       private string name;       private int number;       public People(string n,int no){       name=n;       number=no;      }      People(){}       public teach(){}     }   構造器盡量使用的功能是傳參數的功能,不要包含太多的操作語句即可。

如下例子:通過構造器將變量a,和變量b的值賦值。之后通過實例化對象進行調用方法。

import java.util.Scanner;public class Count {public static void main(String[] args) {System.out.println("請輸入第一個數字");Scanner in = new Scanner(System.in);int a = in.nextInt();System.out.println("請輸入第二個數字");int b = in.nextInt();Count1 co = new Count1 (a,b);co.add();co.sub();co.mul();co.div(); }}class Count1 {int a ;int b ;public Count1 (int a,int b) {this.a = a;this.b = b;}public void add() {int d = a + b;System.out.println(d);}public void sub() {int e = a - b;System.out.println(e);}public void mul() {int f = a/b;System.out.println(f);}public void div() {int g = a / b;System.out.println(g);}}

今天就寫到了。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 连城县| 蓬溪县| 买车| 怀化市| 拜城县| 卢湾区| 呼和浩特市| 宁陕县| 阳朔县| 中牟县| 蕲春县| 平和县| 遵义市| 昆明市| 揭阳市| 青海省| 祁东县| 饶平县| 铁岭县| 景泰县| 武隆县| 岑溪市| 大安市| 星座| 和硕县| 湘潭县| 彭泽县| 六枝特区| 溧水县| 政和县| 湘潭县| 三台县| 阳高县| 依兰县| 绿春县| 虎林市| 大姚县| 福贡县| 长沙市| 华池县| 邹城市|