欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

java中的類(lèi)是什么?怎么使用類(lèi)?

 類(lèi)的基本概念

成都創(chuàng)新互聯(lián)公司成立于2013年,是專(zhuān)業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目做網(wǎng)站、網(wǎng)站制作網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元延平做網(wǎng)站,已為上家服務(wù),為延平各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話(huà):028-86922220

  • 類(lèi)是現(xiàn)實(shí)世界抽象為數(shù)據(jù)集合的一種表達(dá)工具,在程序中我們把類(lèi)作為數(shù)據(jù)、及數(shù)據(jù)操作的容器,是一種自定義數(shù)據(jù)類(lèi)型。
      
  • 類(lèi)具有類(lèi)型本身的屬性,也具有實(shí)例屬性。類(lèi)變量和實(shí)例變量都叫成員變量
    ,類(lèi)變量也叫靜態(tài)成員變量(static修飾符標(biāo)志);類(lèi)方法和實(shí)例方法都叫成員方法,類(lèi)方法也叫靜態(tài)方法(static修飾符標(biāo)志)。實(shí)例也是實(shí)際的例子,類(lèi)似“int a”咱們就叫做變量a是類(lèi)型int的實(shí)例化。
    靜態(tài)變量和靜態(tài)方法可以通過(guò)類(lèi)直接訪(fǎng)問(wèn),也可以通過(guò)對(duì)象訪(fǎng)問(wèn)。
     
  • 關(guān)于public class,這個(gè)public是為了方便能被外部的包導(dǎo)入引用。

  • 靜態(tài)綁定在程序編譯階段決定,動(dòng)態(tài)綁定在程序執(zhí)行時(shí)綁定。實(shí)例變量、靜態(tài)變量、靜態(tài)方法、private方法、構(gòu)造函數(shù)都是靜態(tài)綁定,只有實(shí)例方法是動(dòng)態(tài)綁定,因?yàn)镴ava不鼓勵(lì)成員變量多態(tài)行為,實(shí)例方法都在運(yùn)行時(shí)綁定,如重載:子類(lèi)繼承父類(lèi),相同的實(shí)例方法,參數(shù)不同,執(zhí)行時(shí)候選擇子類(lèi)父類(lèi)方法是通過(guò)參數(shù)匹配來(lái)動(dòng)態(tài)選擇綁定。
     
    +類(lèi)加載過(guò)程如下:
    java中的類(lèi)是什么?怎么使用類(lèi)?

    實(shí)例變量/實(shí)例方法

  • 定一個(gè)類(lèi)本身和定義一個(gè)函數(shù)類(lèi)類(lèi)似,類(lèi)本身不會(huì)自動(dòng)做什么事情,不會(huì)分配內(nèi)存,也不會(huì)執(zhí)行代碼。方法要執(zhí)行,需要被實(shí)例方法調(diào)用,首頁(yè)需要初始化一個(gè)實(shí)例,這里的實(shí)例也就是對(duì)象。
       
  • 實(shí)例化一個(gè)對(duì)象后,系統(tǒng)會(huì)給這個(gè)實(shí)例化變量開(kāi)辟兩個(gè)內(nèi)存空間:一個(gè)存放實(shí)際內(nèi)容,一個(gè)存放實(shí)際內(nèi)容的地址。如下聲明后賦值,聲明時(shí)會(huì)給變量確定一個(gè)存放地址的內(nèi)存空間,該地址指向存儲(chǔ)內(nèi)容的首地址。因?yàn)檫@種變量本身不存儲(chǔ)數(shù)據(jù)內(nèi)容,只存儲(chǔ)內(nèi)容位置,我們也稱(chēng)為引用數(shù)據(jù)類(lèi)型(上一節(jié)我們講過(guò))。

    Point p = new Poiont();

 

  • 如果在方法內(nèi)部調(diào)用同一個(gè)類(lèi)的另一個(gè)方法,就不必使用this。同樣,在一個(gè)方法中如果沒(méi)有局部變量和成員變量同名,那么在這個(gè)方法中使用成員變量也不必使用this。靜態(tài)成員也無(wú)法使用this(因?yàn)闆](méi)有實(shí)例化)。
     
    • 實(shí)例化后,如果沒(méi)有給實(shí)例變量賦值,系統(tǒng)會(huì)自動(dòng)給系統(tǒng)變量賦于該類(lèi)型缺省值作為初始默認(rèn)值(上一節(jié)基本類(lèi)型提到過(guò))。
       
       

      類(lèi)的構(gòu)造方法

    • 類(lèi)型與構(gòu)造函數(shù)名相同,沒(méi)有返回值,也不能有返回值,構(gòu)造函數(shù)返回值就是實(shí)例本身!
      構(gòu)造函數(shù)不返回值不能加void ,構(gòu)造函數(shù)必須使用public 類(lèi)名(...)的形式
       
    • 一個(gè)類(lèi)可以有多個(gè)構(gòu)造方法,構(gòu)造方法可以重載。一旦定義了構(gòu)造方法,Java就不會(huì)再自動(dòng)生成默認(rèn)的構(gòu)造方法了。構(gòu)造方法有有參構(gòu)造方法,還有無(wú)參構(gòu)造方法。
       
    • 構(gòu)造方法可以私有(private),可以用在無(wú)法實(shí)例化的類(lèi),例如:Math等工具類(lèi)不需要實(shí)例化;還有一種場(chǎng)景是只能通過(guò)類(lèi)靜態(tài)方法創(chuàng)建類(lèi)的實(shí)例,因?yàn)闃?gòu)造方法無(wú)法暴露在類(lèi)外部,所以只能被靜態(tài)類(lèi)方法調(diào)用,如:?jiǎn)卫J街荒軇?chuàng)建一個(gè)實(shí)例。
       
    • 子類(lèi)會(huì)默認(rèn)繼承父類(lèi)的非私有成員變量和非私有成員方法,也包括構(gòu)造方法(無(wú)參構(gòu)造函數(shù))。如果子類(lèi)沒(méi)有顯示調(diào)用父類(lèi)構(gòu)造器,則自動(dòng)調(diào)用父類(lèi)的無(wú)參構(gòu)造器;此時(shí)如果父類(lèi)沒(méi)有默認(rèn)構(gòu)造器,則編譯器會(huì)報(bào)錯(cuò)。

 + 程序執(zhí)行的以后父類(lèi)構(gòu)造方法會(huì)優(yōu)先于子類(lèi)執(zhí)行
 

  • 最好能夠?yàn)槊恳粋€(gè)類(lèi)提供一個(gè)無(wú)參構(gòu)造方法,以便于對(duì)該類(lèi)進(jìn)行擴(kuò)展的時(shí)候避免錯(cuò)誤。如下:

public class A extends B{
}

class B {
public B(String name){
System.out.println("this constructor is invoked");
}

其中A沒(méi)有構(gòu)造函數(shù),實(shí)例化后編譯時(shí)A會(huì)執(zhí)行B的帶參數(shù)構(gòu)造函數(shù),編譯報(bào)錯(cuò)。

  • 關(guān)于super,super()。

  • super()可以用在子類(lèi)調(diào)用父類(lèi)的構(gòu)造方法,注意必須在構(gòu)造方法內(nèi)第一行代碼,super ()訪(fǎng)問(wèn)無(wú)參構(gòu)造函數(shù),super (paras…)訪(fǎng)問(wèn)自定義構(gòu)造函數(shù)**。
  • 也可用在子類(lèi)的普通方法(相互是重載關(guān)系,不是重載也沒(méi)意義,因?yàn)楦割?lèi)非私有成員都是可以直接被子類(lèi)調(diào)用的(如果沒(méi)有被覆蓋))調(diào)用父類(lèi)的普通方法與屬性(子類(lèi)與父類(lèi)對(duì)應(yīng)的是重寫(xiě)關(guān)系,沒(méi)有重寫(xiě)關(guān)系的可以直接調(diào)用)。

子類(lèi)與父類(lèi)

  • 當(dāng)一個(gè)類(lèi)繼承于另一個(gè)類(lèi),子類(lèi)中沒(méi)有父類(lèi)的方法時(shí)。用子類(lèi)的對(duì)象調(diào)用方法時(shí),會(huì)首先在子類(lèi)中查找,如果子類(lèi)中沒(méi)有改方法,再到父類(lèi)中查找。
  • 當(dāng)一個(gè)方法只在父類(lèi)中定義時(shí), 調(diào)用該方法時(shí)會(huì)使用父類(lèi)中的屬性
    如果該方法中又調(diào)用了其他方法,那么還是按照之前的順序,先在子類(lèi)中查找,再在父類(lèi)中查找。
    example:

    package Temp;

    class A {
    int x = 6;
    private int y = 2;

    public A(int a) {
        x = a;
    }
    
    int getz() {
        int z;
        z = x / y;
        return z;
    }
    
    void show() {
        System.out.println("x=" + x);
        System.out.println("y=" + y);
        System.out.println("z=" + getz());
    }

    }

    class B extends A {
    int x = 3, y = 5, z;

    public B(int a) {
        super(a);
    }
    
    int getz() {
        z = x + y;
        return z;
    }

    }

    public class Temp {
    public static void main(String[] args) {
    A num1 = new A(10);
    B num2 = new B(9);
    num1.show();
    num2.show();
    }
    }

重寫(xiě)與重載

重寫(xiě)是指子類(lèi)重新重新覆蓋父類(lèi)相同參數(shù)簽名的方法,重寫(xiě)代碼的邏輯塊。
重載是指方法名相同但參數(shù)類(lèi)型、個(gè)數(shù)、順序不同,與返回值無(wú)關(guān);調(diào)用重載方法,我們通過(guò)重載方法參數(shù)但匹配來(lái)動(dòng)態(tài)綁定方法。
java中的類(lèi)是什么?怎么使用類(lèi)?

修飾符public/private/protect/static/final

  • public外部和內(nèi)部、子類(lèi)可以訪(fǎng)問(wèn),private只能內(nèi)部訪(fǎng)問(wèn)、子類(lèi)內(nèi)部無(wú)法直接訪(fǎng)問(wèn),protect外部無(wú)法訪(fǎng)問(wèn)、子類(lèi)內(nèi)部可以訪(fǎng)問(wèn)。
  • 加入final后就不能被繼承訪(fǎng)問(wèn),加了final的方法無(wú)法重寫(xiě)

最后上一個(gè) Java畫(huà)圖的代碼

主函數(shù)如下:

import javax.swing.JFrame;
import paint.MyCanvas;
public class HelloWorld {
JFrame jFrame;
public static void main(String[] args) {
// TODO 自動(dòng)生成的方法存根
HelloWorld paintMain=new HelloWorld();
paintMain.initView();
}

public void initView()
{
    jFrame =new JFrame();
    jFrame.setBounds(100, 100, 500, 500);
    jFrame.setTitle("畫(huà)圖測(cè)試");
    jFrame.setLayout(null);

    MyCanvas myCanvas=new MyCanvas();//畫(huà)布
    myCanvas.setBounds(0,0, 500, 500);
    jFrame.add(myCanvas);
    jFrame.setVisible(true);
}

}

MyCanvas類(lèi)如下:

package paint;

import java.awt.Canvas;
import java.awt.Graphics;

public class MyCanvas  extends Canvas{
@ Override
public void paint(Graphics g) {
// TODO 自動(dòng)生成的方法存根
super.paint(g);//直接輸入paint提示出來(lái)函數(shù);
char[] a= {'顯','示','文','字'};
g.drawChars(a, 0, 4, 50, 150);// data數(shù)組,offset為數(shù)據(jù)初始偏移量,length為要繪制的字符數(shù),x,y文本基線(xiàn)的xy坐標(biāo),
g.drawString("字符測(cè)試01", 20, 20);// 注意,字符串型的x,y在字符中,而不是左上頂點(diǎn);

}

}

畫(huà)圖函數(shù)參考

畫(huà)線(xiàn)段:drawLine

public abstract void drawLine(int x1,int y1,int x2,int y2)
在此圖形上下文的坐標(biāo)系中,使用當(dāng)前顏色在點(diǎn) (x1, y1) 和 (x2, y2) 之間畫(huà)一條線(xiàn)
參數(shù):
x1 - 第一個(gè)點(diǎn)的 x 坐標(biāo)。
y1 - 第一個(gè)點(diǎn)的 y 坐標(biāo)。
x2 - 第二個(gè)點(diǎn)的 x 坐標(biāo)。
y2 - 第二個(gè)點(diǎn)的 y 坐標(biāo)。

畫(huà)矩形:drawRect

public void drawRect(int x,int y, int width, int height)
繪制指定矩形的邊框。矩形的左邊緣和右邊緣分別位于 x 和 x + width。上邊緣和下邊緣分別位于 y 和 y + height。使用圖形上下文的當(dāng)前顏色繪制該矩形。

參數(shù):
x - 要繪制矩形的 x 坐標(biāo)。
y - 要繪制矩形的 y 坐標(biāo)。
width - 要繪制矩形的寬度。
height - 要繪制矩形的高度。

畫(huà)橢圓形:drawOval

public abstract void drawOval(int x, int y,int width, int height)

繪制橢圓的邊框。得到一個(gè)圓或橢圓,它剛好能放入由 x、y、width 和 height 參數(shù)指定的矩形中。
橢圓覆蓋區(qū)域的寬度為 width + 1 像素,高度為 height + 1 像素。

參數(shù):
x - 要繪制橢圓的左上角的 x 坐標(biāo)。
y - 要繪制橢圓的左上角的 y 坐標(biāo)。
width - 要繪制橢圓的寬度。
height - 要繪制橢圓的高度。

畫(huà)帶顏色的圖形:setColor

public abstract void setColor(Color c)
將此圖形上下文的當(dāng)前顏色設(shè)置為指定顏色。使用此圖形上下文的所有后續(xù)圖形操作均使用這個(gè)指定的顏色。

參數(shù):
c - 新的呈現(xiàn)顏色。

畫(huà)圓:drawRoundRect

public abstract void drawRoundRect(int x, int y,int width,int height,int arcWidth,int arcHeight)
用此圖形上下文的當(dāng)前顏色繪制圓角矩形的邊框。矩形的左邊緣和右邊緣分別位于 x 和 x + width。矩形的上邊緣和下邊緣分別位于 y 和 y + height。

參數(shù):
x - 要繪制矩形的 x 坐標(biāo)。
y - 要繪制矩形的 y 坐標(biāo)。
width - 要繪制矩形的寬度。
height - 要繪制矩形的高度。
arcWidth - 4 個(gè)角弧度的水平直徑。
arcHeight - 4 個(gè)角弧度的垂直直徑。

填充橢圓:fillOval

看看它的參數(shù):
fillOval(int x,int y ,int width ,int  height)
前兩個(gè)X 和 Y是矩形框的左上角的坐標(biāo),width和height是寬和高。

畫(huà)多邊形
    int px[] = { 210, 220, 270, 250, 240 };
    int py[] = { 220, 250, 300, 270, 220 };
    g.drawPolygon(px, py, px.length);
顯示文字

g.drawString(String str, int x,int  y)

當(dāng)前題目:java中的類(lèi)是什么?怎么使用類(lèi)?
本文URL:http://chinadenli.net/article18/jiihdp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司定制開(kāi)發(fā)關(guān)鍵詞優(yōu)化面包屑導(dǎo)航響應(yīng)式網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁(yè)設(shè)計(jì)公司