麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

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

Java基礎--面向對象2

2019-11-14 11:15:15
字體:
來源:轉載
供稿:網友

1.方法的重載(Overload)

方法的重載是指一個類中可以定義有相同的名字,但參數不同的多個方法。調用時,會根據不同的參數表選擇對應的方法。

例如:

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

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

2.this關鍵字

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

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

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

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

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

(5).this所在的大框框為heap堆內存里的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();    }}結果是:i=102

 3.static關鍵字

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

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

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

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

5.可以通過對象引用或類名(不需要實例化)訪問靜態成員。main方法在執行時不需要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();    }}

結果為:

My name is mimi No.100

My name is pipi No.2000

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

那么運行結果是:

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

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

 4.package和import語句

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

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

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

Java編譯器把包對應于文件系統的目錄管理,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下,設置Classpath的目的,在于告訴Java執行環境,在哪些目錄下可以找到您所要執行的Java程序所需要的類或者包。

 

J2SDK中主要的包介紹

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

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

java.net包含執行與網絡相關的操作的類

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

java.util包含一些實用工具類,如定義系統特性,使用與日期日歷相關的函數

5.類的繼承

Java中使用extends關鍵字實現類的繼承機制,其語法規則為:

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());    }}結果為:

20cocohenan

6.權限修飾符

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

對于class的權限修飾只可以用public和default。

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

繼承中的權限控制:

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


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 亚洲视频网 | av国产免费| 亚洲性生活免费视频 | 视频h在线| hd日本xxxx| 欧美www | 国产精品久久久久久久久久 | 亚洲乱搞 | 中文字幕亚洲欧美 | 青青草成人av | 视频一区国产 | 国产精选电影免费在线观看网站 | 成人福利视频网站 | 欧美a∨一区二区三区久久黄 | 五月婷婷第四色 | 九草在线视频 | 欧美成人免费在线视频 | 久久视讯 | 未成年人在线观看 | 国产免费资源 | 亚洲免费观看视频 | 国产亚洲精品久久午夜玫瑰园 | 欧美日韩一区二区综合 | 黄色二区三区 | 久久99精品久久久久久园产越南 | 成人偷拍片视频在线观看 | 日韩精品一区二区三区中文 | 渔夫荒淫艳史 | 精精国产xxxx视频在线野外 | 中国洗澡偷拍在线播放 | 免费国产自久久久久三四区久久 | 欧美成人精品欧美一级乱黄 | 欧美成年视频 | 精品少妇v888av | 精品二区在线观看 | 黄色大片在线观看 | 日本精品一二区 | 国产精品欧美久久久久一区二区 | 久久思思爱 | 久久国产精品99久久人人澡 | 久久精品国产久精国产 |