1、包的聲明與訪問
一、包的概念
java的包,其實就是咱們電腦系統中的文件夾,包裏存放的是類文件。java
當類文件不少的時候,一般咱們會採用多個包進行存放管理他們,這種方式稱爲分包管理。oracle
在項目中,咱們將相同功能的類放到一個包中,方便管理。而且平常項目的分工也是以包做爲邊界。dom
類中聲明的包必須與實際class文件所在的文件夾狀況相一致,即類聲明在a包下,則生成的.class文件必須在a文件夾下,不然,程序運行時會找不到類。函數
二、包的聲明格式
一般使用公司網址反寫,能夠有多層包,包名採用所有小寫字母,多層包之間用」.」鏈接this
類中包的聲明格式:spa
package 包名.包名.包名…;code
package com.oracle; //包的聲明,必須在有效代碼的第一行 import java.util.Scanner;//導入包 import java.util.Random; public class Demo {}
三、包的訪問
在訪問類時,爲了可以找到該類,必須使用含有包名的類全名(包名.類名)。對象
包名.包名….類名blog
如:作用域
java.util.Scanner
java.util.Random
com.oracle.Demo
帶有包的類,建立對象格式:包名.類名 變量名 = new 包名.類名();
com.oracle.Demo d = new com.oracle.Demo();
一、 前提:包的訪問與訪問權限密切相關,這裏以通常狀況來講,即類用public修飾的狀況。
二、類的簡化訪問
當咱們要使用一個類時,這個類與當前程序在同一個包中(即同一個文件夾中),或者這個類是java.lang包中的類時一般能夠省略掉包名,直接使用該類。
如:com.oracle包中有兩個類,PersonTest類,與Person類。咱們在PersonTest類中,訪問Person類時,因爲是同一個包下,訪問時能夠省略包名,即直接經過類名訪問 Person。
類名 變量名 = new類名(); Person p = new Person();
三、當咱們要使用的類,與當前程序不在同一個包中(即不一樣文件夾中),要訪問的類必須用public修飾纔可訪問。
package com.oracle02; public class Person {}
四、import導包
導包的格式: import 包名.類名;
2、訪問修飾符
概括一下:在平常開發過程當中,編寫的類、方法、成員變量的訪問
l 要想僅能在本類中訪問使用private修飾;
l 要想本包中的類均可以訪問不加修飾符便可;
l 要想本包中的類與其餘包中的子類能夠訪問使用protected修飾
l 要想全部包中的全部類均可以訪問使用public修飾。
l 注意:若是類用public修飾,則類名必須與文件名相同。一個文件中只能有一個public修飾的類。
3、代碼塊
一、局部代碼塊
局部代碼塊是定義在方法或語句中
特色: 以」{}」劃定的代碼區域,此時只須要關注做用域的不一樣便可
方法和類都是以代碼塊的方式劃定邊界的
class Demo{ public static void main(String[] args) { //局部代碼塊 { int x = 1; System.out.println("普通代碼塊" + x); } int x = 99; System.out.println("代碼塊以外" + x); } }
運行結果:
普通代碼塊1
代碼塊以外99
二、構造代碼塊
構造代碼塊是定義在類中成員位置的代碼塊
特色:
l 優先於構造方法執行,構造代碼塊用於執行全部對象均須要的初始化動做
l 每建立一個對象均會執行一次構造代碼塊。
public class Person { private String name;//成員變量 private int age; //成員變量 //構造代碼塊 { System.out.println("構造代碼塊執行了"); } //空參構造 Person(){ System.out.println("Person無參數的構造函數執行"); } //有參構造 Person(int age){ this.age = age; System.out.println("Person(age)參數的構造函數執行"); } } class PersonDemo{ public static void main(String[] args) { Person p = new Person();//建立空參對象 Person p1 = new Person(23);//建立有參對象 } }
運行結果:
構造代碼塊執行了
Person無參數的構造函數執行
構造代碼塊執行了
Person(age)參數的構造函數執行
三、靜態代碼塊
靜態代碼塊是定義在成員位置,使用static修飾的代碼塊。
特色:
它優先於主方法執行、優先於構造代碼塊執行,當以任意形式第一次使用到該類時執行。
該類無論建立多少對象,靜態代碼塊只執行一次。
可用於給靜態變量賦值,用來給類進行初始化。
public class Person { private String name; private int age; //靜態代碼塊 static{ System.out.println("靜態代碼塊執行了"); } }
如在上述構造代碼塊中,加入該靜態代碼塊,運行結果:
靜態代碼塊執行了構造代碼塊執行了Person無參數的構造函數執行構造代碼塊執行了Person(age)參數的構造函數執行