天天看點

java之包類庫精選

 前言:

沒有人天生就喜歡辛苦和奔波,但生存規則就是這麼殘酷,不進則退,你不能拼命努力,就隻能碌碌無為。

我們上一篇聊到了内部類,這一片我們聊一下包類庫,針對于以下的概念,都會有實體例子配合着,給大家示範,希望給曆險中的你帶來一些幫助!!!

java之包類庫精選

一.介紹 

    java包類庫由一組支援程式開發的類組成。一個編譯器或開發環境以一個類庫為基礎。

   類庫可以單獨從第三方軟體商獲得。類庫方法從技術上說并不屬于某種語言。例如String類不是java語言的内建部分,而是java标準類庫的一部分。類庫由幾組相關的類簇構成,通常稱為java API,即應用程式接口。java标準類庫的類被劃分為包,每個類屬于一個具體的包。可以在聯機java API文檔中尋找需要的包。

二.知識點介紹

    1、概念

    2、定義格式

    3、通路

    4、import導包

    5、通路權限

    6、項目分層

三.知識點詳解:

1、包的概念

    java的包,其實就是我們電腦系統中的檔案夾,包裡存放的是程式生成的.class檔案。

    當.class檔案很多的時候,通常我們會采用多個包進行存放管理他們,這種方式稱為分包管理,分包管理是組織軟體項目結構的基本方式。

    在項目中,我們将相同功能的類放到一個包中,友善管理。并且日常項目的分工也是以包作為邊界。

    類中聲明的包必須與實際class檔案所在的檔案夾情況相一緻,即類聲明在a包下,則生成的.class檔案必須在a檔案夾下,否則,程式運作時會找不到類。 

2、包的定義格式

    通常使用公司網址反寫,可以有多層包,包名采用全部小寫字母,多層包之間用”.”連接配接

    類中包的聲明格式:package 包名.包名.包名…;

    如:百度官網網址baidu.com那麼網址反寫就為com.baidu      

    注意:聲明包的語句,必須寫在程式有效代碼的第一行(注釋不算)

  格式示範:

package com.baidu;//包的聲明,必須在有效代碼的第一行
    import java.util.Scanner;
    import java.util.Random;
    public classDemo      

3、包的通路

    在通路類時,為了能夠找到該類,必須使用含有包名的類全名(包名.類名)。

包名.包名….類名

    如: 

java.util.Scanner
    java.util.Random
    com.baidu.Demo      

    帶有包的類,建立對象格式:包名.類名 變量名 = new包名.類名();

com.baidu.Demod = new com.baidu.Demo();      

    前提:包的通路與通路權限密切相關,這裡以一般情況來說,即類用public修飾的情況。

3.1、類的簡化通路

    當我們要使用一個類時,這個類與目前程式在同一個包中(即同一個檔案夾中),或者這個類是java.lang包中的類時通常可以省略掉包名,直接使用該類。

如:cn.itcast包中有兩個類,PersonTest類,與Person類。我們在PersonTest類中,通路Person類時,由于是同一個包下,通路時可以省略包名,即直接通過類名通路 Person。

類名 變量名 = new類名();
Person p =new Person();      

    當我們要使用的類,與目前程式不在同一個包中(即不同檔案夾中),要通路的類必須用public修飾才可通路。

package cn.com.javahelp02;      
代碼示範:
package Test2;


import com.Test.person;

public class Tested {
        public static void main(String[] args) {
            //在通路類時,為了能夠找到該類,使用類時,應該使用 包含 包 的類全名。
            //  cn.itcast.Person p = newcn.itcast.Person();
            //  p.eat();
            //  cn.itcast6.Tree t = newcn.itcast6.Tree();
            //當在同一個檔案夾下不需要使用類全名
            //  Tree t = new Tree();
            //  t.chengLiang();
            //因為String在java.lang包下 是以不需要使用類全名不需要導包
            //  String s = "";
            //當被使用的類與使用的類不在同一個檔案夾下時,
            //被使用者必須用public修飾才可被其他包下的類通路,
            //我們可以通過導包的方式使用該類,避免使用類全名
            person p = new person();
            
            //當多個檔案夾下有相同的類名時,隻能有一個導包使用,其他必須仍然書寫全名。
            Test2.person p2 = new Test2.person();
        }
    }      
java之包類庫精選

4、import導包

    我們每次使用類時,都需要寫很長的包名。很麻煩,我們可以通過import導包的方式來簡化。

    可以通過導包的方式使用該類,可以避免使用全類名編寫(即,包類.類名)。

導包的格式:

import 包名.類名; 
    當程式導入指定的包後,使用類時,就可以簡化了。示範如下
    //導入包前的方式
    //建立對象
    java.util.Randomr1 = new java.util.Random();
    java.util.Randomr2 = new java.util.Random();
    java.util.Scannersc1 = new java.util.Scanner(System.in);
    java.util.Scannersc2 = new java.util.Scanner(System.in);
    //導入包後的方式
    importjava.util.Random;
    importjava.util.Scanner;
    //建立對象
    Random r1 =new Random();
    Random r2 =new Random();
    Scanner sc1 =new Scanner(System.in);
    Scanner sc2 =new Scanner(System.in);      

    import導包代碼書寫的位置:在聲明包package後,定義所有類class前,    使用導包import包名.包名.類名;

5、通路權限

    在Java中提供了四種通路權限,使用不同的通路權限時,被修飾的内容會有不同的通路權限,以下表來說明不同權限的通路能力:

public protected受保護的 default預設 private私有的
同一類中
同一包中(子類與無關類)
不同包的子類
不同包中的無關類

    是以,在日常開發過程中,如果允許其他包的類通路使用public,如果僅允許其他包的子類通路使用protected,僅本包内的類通路使用預設,僅能本類中通路使用private。

代碼示範:

我們先看一下代碼結構:

java之包類庫精選

person.java

package Test2;


public class person {
    /*
     * 通路權限修飾符
     */
    public static class Person {
        public void method1(){
            System.out.println("公共方法");
        }
        protected void method2(){
            System.out.println("受保護的方法(為了給子類使用)");
        }
        void method3(){
            System.out.println("預設權限方法");
        }
        private  void method4(){
            System.out.println("私有方法");
        }
        //同一個類中
        public void test(){
            method1();
            method2();
            method3();
            method4();
        }
    }
        /*
         *四種方法都可以執行
         */
        public static class Test {

            public static void main(String[] args) {
                Person p = new Person();
                p.test();
            }
        }
        /*
         * 同一個包下  子類 或者無關類
         */
        public class Student {

            public void test(){
                Person p = new Person();
                p.method1();
                p.method2();
                p.method3();
                //  p.method4();
            }
        }

    }      
java之包類庫精選

  Student.java

package Test2;


    /*     * 不同包下的子類
     */    
public class Student extends person.Person {
       public  void test(){
            method1();
            method2();
            //  method3();            
           //  method4();        
       }
    }      
java之包類庫精選

Tested.java

package Test2;


public class Tested {
    private  final  static  String name = "磊哥的java曆險記-@51部落格";
        public static void main(String[] args) {
            /*
             * 不同包下的無關類
             */
                    person.Person p = new person.Person();
                    p.method1();
                    p.method2();
                    p.method3();
                    //p.method4();
            System.out.println("============="+name+"=============");
                }
            }      
java之包類庫精選

執行結果:

java之包類庫精選
歸納:

在日常開發過程中,編寫的類、方法、成員變量的通路

    (1)要想僅能在本類中通路使用private修飾;

    (2)要想本包中的類都可以通路不加修飾符即可;

    (3)要想本包中的類與其他包中的子類可以通路使用protected修飾

    (4)要想所有包中的所有類都可以通路使用public修飾。

 注意:

如果類用public修飾,則類名必須與檔案名相同。一個檔案中隻能有一個public修飾的類。

6、項目分層(分包)

    一個項目随着功能的增加、繼承樹的擴充會出現衆多的Java類。這時,不僅需要将一個類中的整體功能抽取出成為獨立方法,還需要将功能邊界即功能所有者界定,而這就是定義類與包的過程。

在定義好不同的類之後,再将相似功能的類放到同一個包中進行統一管理。

歸納:

我們後期會講到架構,對于一個項目去講,說用到ssm,ssh,微服務,一站式,也就意味了這個項目有一定的代碼體量,我們不可能按照現在的樣子,建立一個包,全放裡面,是以我們要給這些分包,我們簡單看一下,大概會分為哪幾類:

1、view層: 視圖層,項目的頁面展示代碼。

2、controller層: 控制層, 接受界面傳入的資料,将要資料交給業務層處理。

3、service層: 業務層, 功能的實作, 與controller控制層和資料通路層DAO互動, 将對資料庫的操作交給DAO資料通路層來處理。

4、 dao層: 資料通路層, 主要用來和資料庫交換資料。

5、 db資料庫: 這裡指資料庫,MySQL、SQLServer、Oracle、Sybase、DB2

6、 實體包: 存放JavaBean(實體類,一個表一個類,最好建立的實體類與資料庫裡的表的名字和數量都一樣。

7、 tools工具包:存放項目中封裝好的工具類。

8、test 測試包: 項目功能測試的代碼(就是目前階段最常見的)

如果再詳細,還會有很多的分層,這裡就不一一介紹了,等後面有機會,會和兄弟們細聊!

結語:

感謝兄弟們的持續關注,文章中對應概念下都會有代碼和代碼示範,初學的兄弟們可以自己動手試試!

後面會持續更新java基礎這一系列的文章!