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

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

Java基礎(chǔ)--面向?qū)ο?

2019-11-14 11:15:15
字體:
供稿:網(wǎng)友

1.方法的重載(Overload)

方法的重載是指一個類中可以定義有相同的名字,但參數(shù)不同的多個方法。調(diào)用時,會根據(jù)不同的參數(shù)表選擇對應(yīng)的方法。

例如:

void info(){    System.out.PRintln("My id is "+ id);}void info (String t){    System.out.println(t+" "+id+" "+age);}構(gòu)造方法也可以構(gòu)成重載,例如:

Person(){    id = 0;    age = 20;}Person(int i){    id = 0;    age = i;}Person(int n,int i){    id = n;    age = i;}  

2.this關(guān)鍵字

this:當(dāng)一個對象創(chuàng)建后,java會給這個對象分配一個引用自身的指針,這個指針的名字就是this,只能在類中的非靜態(tài)方法中使用,方法中的某個形參名與當(dāng)前對象某個成員有相同的名字,這時為了不至于混淆,你便需要明確是那個this關(guān)鍵字指明使用的成員。

(1).在類的方法定義中使用的this關(guān)鍵字代表使用該方法的對象的引用

(2).當(dāng)必須指出當(dāng)前使用方法的對象是誰時要使用this

(3).有時使用this可以處理方法中成員變量和參數(shù)重名的情況

(4).this可以看作是一個變量,它的值是當(dāng)前對象的引用

(5).this所在的大框框為heap堆內(nèi)存里的new出來的一個對象

例如:

public class Leaf {    int i = 0;    Leaf(int i) {this.i = i;}    Leaf increament(){        i++;        return this;    }    void print(){        System.out.println("i ="+i);    }    public static void main(String[] args){        Leaf leaf =new Leaf(100);        leaf.increament().increament().print();    }}結(jié)果是:i=102

 3.static關(guān)鍵字

1.在類中,用static聲明的成員變量為靜態(tài)成員變量,它為該類的公用變量,在第一次使用時被初始化,對于該類的所有對象來說,static成員變量只有一份。

2.用static聲明的方法為靜態(tài)方法,在調(diào)用該方法時,不會將對象的引用傳遞給它,即是沒有對象一樣可以用(Cat.靜態(tài)的方法,不用寫對象的名字),所以在static方法中不可以訪問非static的成員。因此靜態(tài)方法中不能用this和super關(guān)鍵字,不能直接訪問所屬類的實例變量和實例方法(就是不帶static的成員變量和成員成員方法),只能訪問所屬類的靜態(tài)成員變量和成員方法。

3.main函數(shù)其實也是所在類的一個方法,就比如一個類是test,那么該類的main其實就是test.main(String[]args),眾所周知如果一個方法不是靜態(tài)的,則要先實例化該類,比如要這樣 test t=new test();然后才能調(diào)用test.main();而這對于運行一個程序的主函數(shù)來說是不現(xiàn)實的,所以比如把main函數(shù)定義為static,使test.main()可以直接被調(diào)用。

4.靜態(tài)方法不再是針對某個對象調(diào)用,所以不能直接訪問非靜態(tài)成員。如果想訪問必須new個對象出來

5.可以通過對象引用或類名(不需要實例化)訪問靜態(tài)成員。main方法在執(zhí)行時不需要new一個對象出來。

類名 . static變量名

類名 . static方法名

public class Cat {    private static int sid = 0;    private String name;    int id;    Cat(String name) {        this.name = name;        id = sid++;    }    public void info() {        System.out.println("My name is " + name + " No." + id);    }    public static void main(String arg[]) {        Cat.sid = 100;        Cat mimi = new Cat("mimi");        mimi.sid = 2000;        Cat pipi = new Cat("pipi");        mimi.info();        pipi.info();    }}

結(jié)果為:

My name is mimi No.100

My name is pipi No.2000

如果去掉sid的static和Cat.sia = 100;

那么運行結(jié)果是:

My name is mimi No.0My name is pipiNo.0        

此時sid在兩個new出來的對象里都有值,均為1,每次創(chuàng)建對象是,sid都會被重新賦值為0。

 4.package和import語句

為便于管理大型軟件系統(tǒng)中數(shù)目眾多的類,解決類的名字沖突問題,Java引入(package)機制,提供類的多重類命名空間。

package pakg1[.pakg2[.pakg3…]];   一般為公司的域名反過來寫成package com. … .  …;

package語句作為Java源文件的第一條語句,指明該文件中定義的類所在的包。

Java編譯器把包對應(yīng)于文件系統(tǒng)的目錄管理,package語句中,用“ .”來指明包的層次

例如:packagecom.sxt;   則該文件中所有的類位于./com/sxt目錄下

  如果將一個類打包,則使用該類時必須使用該類的全名,例如com.sxt.Myclass,Java編譯器才能找到該類。

也可以使用import在文件的開頭引入要使用到的類。

例如import com.sxt.Myclass;  //可以引用Myclass類

importcom.sxt.*;                      //sxt下的類都能引用

importjava.util;                        //引入Java.util包中的所有類

可以不需要用import語句直接使用java.lang包中的類。

必須class文件的最上層包的父目錄位于classpath下,設(shè)置Classpath的目的,在于告訴Java執(zhí)行環(huán)境,在哪些目錄下可以找到您所要執(zhí)行的Java程序所需要的類或者包。

 

J2SDK中主要的包介紹

java.lang包含一些Java語言的核心類,如String,Math,Integer(整數(shù)),System和Thread(線程)

java.awt包含了構(gòu)成抽象窗口工具集的多個類,這些類被用來構(gòu)建和管理應(yīng)用程序的圖形化用戶界面

java.net包含執(zhí)行與網(wǎng)絡(luò)相關(guān)的操作的類

java.io包含能提供多種輸入輸出功能的類

java.util包含一些實用工具類,如定義系統(tǒng)特性,使用與日期日歷相關(guān)的函數(shù)

5.類的繼承

Java中使用extends關(guān)鍵字實現(xiàn)類的繼承機制,其語法規(guī)則為:

class [extends ]{……}

通過繼承,子類自動擁有了基類(superclass)的所有成員(成員變量和方法)

Java只支持單繼承,不允許多繼承:一個之類只能有有一個基類,一個基類可以派生出多個子類

public class Person {    private String name;    private int age;    public void setName(String name) {        this.name = name;    }    public void setAge(int age){        this.age = age;    }    public String getName(){        return name;    }    public int getAge(){        return age;    }}
public class Student extends Person{    private String school;    public void setSchool(String school){        this.school = school;    }    public String getSchool(){        return school;    }}
public class Test {    public static void main(String agrs[]){        Student student = new Student();        student.setAge(20);        student.setName("coco");        student.setSchool("henan");        System.out.println(student.getAge());        System.out.println(student.getName());        System.out.println(student.getSchool());    }}結(jié)果為:

20cocohenan

6.權(quán)限修飾符

Java權(quán)限修飾符public protected private置于類的成員之前,用來限定其他對象對該類對象成員的權(quán)限

對于class的權(quán)限修飾只可以用public和default。

public類可以在任意地方被訪問,default類只可以被同一包內(nèi)部的類訪問。

繼承中的權(quán)限控制:

一個類能夠繼承另一個類中private的成員,因為他會繼承所有成員,但是它不能使用private成員


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 林甸县| 佛山市| 汉沽区| 鸡泽县| 武安市| 张家川| 资阳市| 玉龙| 深泽县| 绥宁县| 泸西县| 黎平县| 兴化市| 垣曲县| 石家庄市| 集贤县| 方正县| 昌江| 会宁县| 增城市| 苍梧县| 宁明县| 繁峙县| 萝北县| 大洼县| 蕉岭县| 沾益县| 梁河县| 靖西县| 资溪县| 南昌县| 磐石市| 施甸县| 阿坝县| 定兴县| 丹棱县| 芜湖县| 滕州市| 芜湖县| 伊春市| 连山|