最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java訪問權限原理與用法詳解

 更新時間:2020年02月12日 10:28:40   作者:扎心了,老鐵  
這篇文章主要介紹了Java訪問權限,結合實例形式詳細分析了java構造者思想、包、訪問修飾符等相關原理、應用與操作注意事項,需要的朋友可以參考下

本文實例講述了Java訪問權限原理與用法。分享給大家供大家參考,具體如下:

構造者模式思想

進行初始化,解決了多個構造器重載,構造器參數過多記不住的情況。

package day7;//聲明一個程序包
class Employee{
  private String name;
  private int no;
  private int age;
  private String sex;
  private String address;
  //alt + shift + s
  
  public int getNo() {
    return no;
  }
/*  public Employee() {
  }*/

  public Employee setNo(int no) {
    this.no = no;
    return this;
  }
  public String getName() {
    return name;
  }
  public Employee setName(String name) {
    this.name = name;
    return this;
  }
  public int getAge() {
    return age;
  }
  public Employee setAge(int age) {
    this.age = age;
    return this;
  }
  public String getSex() {
    return sex;
  }
  public Employee setSex(String sex) {
    this.sex = sex;
    return this;
  }
  public String getAddress() {
    return address;
  }
  public Employee setAddress(String address) {
    this.address = address;
    return this;
  }
/*  public Employee(String name, int no, int age, String sex, String address) {
    this.name = name;
    this.no = no;
    this.age = age;
    this.sex = sex;
    this.address = address;
  }*/
  public void show() {
    System.out.println(no+","+name+","+age+","+sex+","+address);
  }
}
public class TestEmployee {

  public static void main(String[] args) {
/*    Employee tom = new Employee("Tom",12,33,"男","上海");
    tom.show();*/
    /*構造者模式思想 :進行 初始化。解決了 多個構造器重載 ,構造器 參數過多 記不住的情況*/
    Employee tom = new Employee().setNo(11).setAddress("北京").setAge(33).setSex("男").setName("Tom");
    tom.show();
  }

}

package day7;//聲明一個程序包,必須放在文件的第一行

層次結構

package 父包[.子包.······];
包名:小寫字母;通常是域名反轉.部門名.項目名

包的好處

1.管理類和接口
2.防止命名沖突
3.封裝,通過權限的控制,更好的

不同程序包下的類的方法訪問方式

1.導入程序包

import b.Exam2;//導入b包下的類型Exam2
import b.*;//不能導入子包
import b.c.Exam3;//導入子包下的類型

2.用完全限定命名的方式

b.Exam2 e2 = new b.Exam2();

注意:兩個包下有相同的類型,必須用完全限定命名的方式進行。

訪問修飾符

Java將類成員的可見度分為四個種類:

創(chuàng)建類的時候只有兩種:public和默認

static

static是一個修飾符
應用:可以用于修飾屬性,方法,塊,類
靜態(tài)變量

class 類名{
//靜態(tài)成員變量,類變量
public static 數據類型 變量名;
}

package day7;
class Child{
static int count;
}
public class TestChild {
public static void main(String[] args) {
Child a = new Child();
Child b = new Child();
//count被所有對象共享
a.count ++;
b.count ++;
System.out.println(a.count);
System.out.println(b.count);
}
}

 

靜態(tài)變量隨著類的創(chuàng)建的而存在,優(yōu)先于對象存在。

靜態(tài)變量(類變量)

屬于類的,被所有對象所共享,優(yōu)先于對象而存在的。
使用

類名.靜態(tài)變量名
對象名.靜態(tài)變量名//少用,容易混淆

靜態(tài)變量和實例變量的區(qū)別

1.靜態(tài):類加載的時候就加載了,就創(chuàng)建了,就分配空間默認初始化了

實例:對象創(chuàng)建的時候,才能創(chuàng)建;
2.靜態(tài):屬于類的,存在于方法區(qū)中的。
實例:屬于對象。存在于堆中。
3.靜態(tài):聲明周期很長,類銷毀的時候,才回釋放。
實例:對象銷毀,會釋放。

靜態(tài)變量的應用場合

當數據共享時,使用。
當不需要對象,或無法創(chuàng)建對象時使用。

靜態(tài)塊

在類中定義

static{
  作用:初始化類的,給類變量初始化,靜態(tài)變量
}

局部代碼塊

定義:在方法中定義

public void show(){
  {
    局部代碼塊
    作用:用來控制局部變量生命周期和使用范圍。
  }
}

靜態(tài)方法

靜態(tài)方法中只能訪問靜態(tài)成員。
靜態(tài)方法中不能使用this,super關鍵字。super可能訪問到非靜態(tài)的成員。

靜態(tài)方法和實例方法的區(qū)別

1.靜態(tài):屬于類,用類名直接調用
實例: 屬于對象調用。
2.靜態(tài):只能直接訪問靜態(tài)成員(靜態(tài)變量,靜態(tài)方法)
實例:可以直接訪問靜態(tài)的和非靜態(tài)的
3.靜態(tài):不能使用this,super。
實例:可以使用this,super。

應用場合

當不用創(chuàng)建對象訪問,形式簡單或者不能創(chuàng)建對象,那么就要用靜態(tài)的方法了

靜態(tài)導入

導入的是類中的靜態(tài)成員,導入之后可以直接使用。

格式

import static 包名.類名.靜態(tài)變量名(方法);

單例模式

對類只能創(chuàng)建一個對象

餓漢模式

類加載時,靜態(tài)變量就存儲了一個對象

package day7;
class Window{
  private static Window win = new Window();
  private Window() {
  }
  public static Window getInstance() {
  return win;
  }
}
public class TestWindow {
  public static void main(String[] args) {
    Window win = Window.getInstance();
    Window win1 = Window.getInstance();
    System.out.println(win);
    System.out.println(win1);
  }
}

輸出結果

day7.Window@7852e922
day7.Window@7852e922

懶漢模式

類加載時,沒有指定對象,只有在應用的時候才去創(chuàng)建對象,多線程的環(huán)境時,推薦使用餓漢式,因為是線
程安全的。

package day7;
class Window{
  private static Window win = null;
  private Window() {
}
public static Window getInstance() {
  if(win == null) {
    win = new Window();
  }
  return win;
  }
}
public class TestWindow {
public static void main(String[] args) {
Window win = Window.getInstance();
Window win1 = Window.getInstance();
System.out.println(win);
System.out.println(win1);
}
}

返回結果

day7.Window@7852e922
day7.Window@7852e922

API之Math類

常用方法

package day7;
public class TestMath {
public static void main(String[] args) {
// Math
System.out.println(Math.abs(‐33.4));//33.4
//大于等于44.6的最小整數‐》double
System.out.println(Math.ceil(44.6));//45.0
//小于等于44.6的最大整數‐》double
System.out.println(Math.floor(44.6));//44.0
//四舍五入為一個long數字
System.out.println(Math.round(44.6));//45
//求幾次方的值
System.out.println(Math.pow(3,2));//9.0
//double [0.0,1.0)
double n = Math.random();
System.out.println(n);
//1‐10
//[最小值,最大值]
//(int)(Math.random()*(最大值‐最小值+1)+最小值)
int num = (int)(Math.random()*(10‐1+1)+1);
System.out.println(num);
}
}

Random類

Random rand1 = new Random(11);//11為隨機種子
System.out.println(rand1.nextDouble());
Random rand2 = new Random(11);//
System.out.println(rand2.nextDouble());

隨機種子相同時,相同隨機次數輸出結果相同。

Random rand3 = new Random(11);
//int范圍內的整數
System.out.println(rand3.nextInt());
//[0,5)
System.out.println(rand3.nextInt(5));

更多關于java算法相關內容感興趣的讀者可查看本站專題:《Java面向對象程序設計入門與進階教程》、《Java數據結構與算法教程》、《Java操作DOM節(jié)點技巧總結》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總

希望本文所述對大家java程序設計有所幫助。

相關文章

  • java實現AES 32位加密解密的方案

    java實現AES 32位加密解密的方案

    Oracle在其官方網站上提供了無政策限制權限文件(Unlimited Strength Jurisdiction Policy Files),我們只需要將其部署在JRE環(huán)境中,就可以解決限制問題,下面給大家介紹下java實現AES 32位加密解密的方案,感興趣的朋友一起看看吧
    2021-11-11
  • Java NIO三大組件與ByteBuffer深入理解及使用

    Java NIO三大組件與ByteBuffer深入理解及使用

    這篇文章主要介紹了Java NIO三大組件與ByteBuffer,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習吧
    2023-01-01
  • java中通用的線程池實例代碼

    java中通用的線程池實例代碼

    java中通用的線程池實例代碼,需要的朋友可以參考一下
    2013-03-03
  • java實現2048小游戲

    java實現2048小游戲

    這篇文章主要為大家詳細介紹了java實現2048小游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-02-02
  • Java位集合之BitMap實現和應用詳解

    Java位集合之BitMap實現和應用詳解

    這篇文章主要介紹了Java位集合之BitMap實現和應用的相關資料,BitMap是一種高效的數據結構,適用于快速排序、去重和查找等操作,通過簡單的數組和位運算,可以在Java中實現BitMap,從而節(jié)省存儲空間并提高性能,需要的朋友可以參考下
    2024-12-12
  • SpringBoot整合Mybatis實現商品評分的項目實踐

    SpringBoot整合Mybatis實現商品評分的項目實踐

    本文介紹了SpringBoot整合Mybatis-plus框架實現對商品評分的功能實現流程和前端接口實現過程,文中通過示例代碼介紹的非常詳細,需要的朋友們下面隨著小編來一起學習學習吧
    2024-02-02
  • 深入了解Java數據結構和算法之堆

    深入了解Java數據結構和算法之堆

    這篇文章主要為大家介紹了Java數據結構和算法之堆 ,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-01-01
  • 將Dubbo服務打包成Jar包的操作步驟

    將Dubbo服務打包成Jar包的操作步驟

    Dubbo 是一款流行的 Java RPC 框架,它提供了高性能、透明化的 RPC 遠程服務調用方案,在開發(fā)基于 Dubbo 的服務時,我們通常需要將服務代碼打包成可發(fā)布的 JAR 包,本文將詳細介紹如何將 Dubbo 服務打包成 JAR 包,并提供相應的配置和步驟,需要的朋友可以參考下
    2024-12-12
  • java中Base64編碼原理實例講解

    java中Base64編碼原理實例講解

    這篇文章主要介紹了java中Base64編碼原理實例講解,文章講解的很清晰,有對于這方面不太懂的同學可以研究下
    2021-02-02
  • JAVA使用Gson解析json數據實例解析

    JAVA使用Gson解析json數據實例解析

    JSON(JavaScript Object Notation) 是一種輕量級的數據交換格式,易于閱讀和編寫,同時也易于機器解析和生成。接下來通過本文給大家介紹JAVA使用Gson解析json數據實例解析,需要的朋友參考下吧
    2016-03-03

最新評論

眉山市| 德清县| 惠州市| 蓬安县| 惠来县| 朔州市| 湖南省| 茂名市| 惠来县| 台南县| 贞丰县| 开鲁县| 砀山县| 嵩明县| 华阴市| 馆陶县| 穆棱市| 电白县| 鹤山市| 永泰县| 台中县| 巫溪县| 蒙自县| 稻城县| 汉川市| 会同县| 如皋市| 名山县| 郎溪县| 望奎县| 长春市| 荃湾区| 蕲春县| 麦盖提县| 泰来县| 桐柏县| 湾仔区| 雷波县| 宜黄县| 塔城市| 浦县|