久久久精品一区ed2k-女人被男人叉到高潮的视频-中文字幕乱码一区久久麻豆樱花-俄罗斯熟妇真实视频

java中的類是什么?怎么使用類?

 類的基本概念

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

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

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

    實例變量/實例方法

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

    Point p = new Poiont();

 

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

      類的構(gòu)造方法

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

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

  • 最好能夠為每一個類提供一個無參構(gòu)造方法,以便于對該類進行擴展的時候避免錯誤。如下:

public class A extends B{
}

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

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

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

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

子類與父類

  • 當(dāng)一個類繼承于另一個類,子類中沒有父類的方法時。用子類的對象調(diào)用方法時,會首先在子類中查找,如果子類中沒有改方法,再到父類中查找。
  • 當(dāng)一個方法只在父類中定義時, 調(diào)用該方法時會使用父類中的屬性
    如果該方法中又調(diào)用了其他方法,那么還是按照之前的順序,先在子類中查找,再在父類中查找。
    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();
    }
    }

重寫與重載

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

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

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

最后上一個 Java畫圖的代碼

主函數(shù)如下:

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

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

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

}

MyCanvas類如下:

package paint;

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

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

}

}

畫圖函數(shù)參考

畫線段:drawLine

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

畫矩形: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 - 要繪制矩形的高度。

畫橢圓形:drawOval

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

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

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

畫帶顏色的圖形:setColor

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

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

畫圓: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 個角弧度的水平直徑。
arcHeight - 4 個角弧度的垂直直徑。

填充橢圓:fillOval

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

畫多邊形
    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中的類是什么?怎么使用類?
本文URL:http://sd-ha.com/article18/jiihdp.html

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

廣告

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

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