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

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

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

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

1.方法的重載(Overload)

方法的重載是指一個(gè)類中可以定義有相同的名字,但參數(shù)不同的多個(gè)方法。調(diào)用時(shí),會(huì)根據(jù)不同的參數(shù)表選擇對(duì)應(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)一個(gè)對(duì)象創(chuàng)建后,java會(huì)給這個(gè)對(duì)象分配一個(gè)引用自身的指針,這個(gè)指針的名字就是this,只能在類中的非靜態(tài)方法中使用,方法中的某個(gè)形參名與當(dāng)前對(duì)象某個(gè)成員有相同的名字,這時(shí)為了不至于混淆,你便需要明確是那個(gè)this關(guān)鍵字指明使用的成員。

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

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

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

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

(5).this所在的大框框?yàn)閔eap堆內(nèi)存里的new出來的一個(gè)對(duì)象

例如:

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)成員變量,它為該類的公用變量,在第一次使用時(shí)被初始化,對(duì)于該類的所有對(duì)象來說,static成員變量只有一份。

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

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

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

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

類名 . 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;

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

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

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

 4.package和import語句

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

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

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

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

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

  如果將一個(gè)類打包,則使用該類時(shí)必須使用該類的全名,例如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è)類,這些類被用來構(gòu)建和管理應(yīng)用程序的圖形化用戶界面

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

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

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

5.類的繼承

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

class [extends ]{……}

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

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

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置于類的成員之前,用來限定其他對(duì)象對(duì)該類對(duì)象成員的權(quán)限

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

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

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

一個(gè)類能夠繼承另一個(gè)類中private的成員,因?yàn)樗麜?huì)繼承所有成員,但是它不能使用private成員


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 榆林市| 安徽省| 长垣县| 普兰店市| 遂川县| 渝中区| 怀来县| 班玛县| 成武县| 嘉黎县| 清新县| 曲麻莱县| 白城市| 招远市| 乌鲁木齐县| 永新县| 射洪县| 麻江县| 博客| 宝坻区| 同仁县| 子长县| 北海市| 济宁市| 全南县| 页游| 泸西县| 天门市| 吕梁市| 聂拉木县| 扬中市| 衡南县| 景谷| 广东省| 枣庄市| 浠水县| 莱阳市| 金山区| 石家庄市| 长乐市| 松原市|