包和访问权限

1、命名规则

  • 命名规则

    1. 包名全部由小写字母(多个单词也全部小写);

    2. 如果包名包含多个层次,每个层次应该用“.”分割;

    3. 包名一般由倒置的域名开头,比如com.baidu;——不要有www

    4. 自定义包不能以java开头;

  • 注意

    1. 在src下创建com.baidu.tool包,并在包中新建Java源文件

    2. package语句用于指明该源文件定义的类所在的包。一个Java源文件中最多只能有一条package语句

    3. 如果Java源文件中有package语句,则该语句一定是源文件中的第一条可执行语句,它的前面只能有注释或空行;


2、作用

  1. 有利于类的查找与管理。一个软件由很多类构成,这些类按其功能可分为vo类、dao类、工具类、service类、controller类等,将这些类按其功能分门别类地放在不同包中有利于类的查找与管理;

  2. 解决了同名类命名冲突

  3. 有利于保护类中的成员变量及其方法。类中成员变量及其方法前面的访问控制符决定了该变量和方法的使用范围;


3、JDK中的包

  • JDK类库中的包,最高一级的包名是java和javax。
    这里写图片描述

  • java.lang:提供利用 Java 编程语言进行程序设计的基础类,例如:String、Math、Integer、System和Thread等。

  • java.util:java工具类,包含对集合的操作、事件模型、日期和时间设施、国际化和各种实用工具类。

  • java.io:通过数据流、序列化和文件系统提供系统输入和输出。

  • java.net:为实现网络应用程序提供类。

  • java.awt:包含用于创建用户界面和绘制图形图像的所有类。


4、引包

快捷键引包 :ctrl+shift+o

什么时候需要引包

  • 自定义类中使用在不同一包中的其它自定义类时;

  • 自定义类中除java.lang包以外的其它包中的JDK中自带的类时就需要引包;

  • 自定义类中使用其它第三方jar包中的类或接口时需要引包

如何引包

  • 直接使用完整类名引包;完整类名(包名+类名)引包
package com.baidu.sortarray;


public class SortArray {

    public static void main(String[] args) {

        int [] array = {21,3,54,17,22};
        java.util.Arrays.sort(array);//包名+类名
        for(int data :array) {
            System.out.println(data);
        }
    }
}
  • 使用import关键字引包有两种方法:

    1、import 包名.类名,这种方式用的最多;

package com.baidu.pinyin;

import net.sourceforge.pinyin4j.PinyinHelper;
import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType;
import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;
import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;
import net.sourceforge.pinyin4j.format.HanyuPinyinVCharType;
//上面四个等价于 import net.sourceforge.pinyin4j.format.*;
import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;

public class PinYinUtil {

        /**
         * 将汉字转换为全拼的拼音。
         * 
         * @param isCapital true表示返回大写形式,false表示返回小写形式。
         */
        public static String getPinYinAllChar(String zn_str, boolean isCapital) {
            char[] strChar = zn_str.toCharArray();
            HanyuPinyinOutputFormat hanYuPinOutputFormat = new HanyuPinyinOutputFormat();
            // 输出设置,大小写,音标方式等
            if(isCapital) {
                hanYuPinOutputFormat.setCaseType(HanyuPinyinCaseType.UPPERCASE);
            } else {
                hanYuPinOutputFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);
            }
            hanYuPinOutputFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
            hanYuPinOutputFormat.setVCharType(HanyuPinyinVCharType.WITH_V);

            StringBuffer pyStringBuffer = new StringBuffer();
            String[] strString = new String[strChar.length];
            try {
                for (int i = 0; i < strChar.length; i++) {
                    if (Character.toString(strChar[i]).matches("[\\u4E00-\\u9FA5]+")) {//如果是汉字字符
                        strString = PinyinHelper.toHanyuPinyinStringArray(strChar[i], hanYuPinOutputFormat);//将汉字的几种全拼都存到strString数组中
                        pyStringBuffer.append(strString[0]);//取出该汉字全拼的第一种读音并连接到字符串pyStringBuffer后
                    } else {//如果不是汉字字符,直接取出字符并连接到字符串pyStringBuffer后
                        pyStringBuffer.append(Character.toString(strChar[i]));
                    }
                }
            } catch (BadHanyuPinyinOutputFormatCombination e) {
                e.printStackTrace();
            }
            return pyStringBuffer.toString();
        }
    }

2、import 包名.*,这种方式将向类中导入该包中的所有公共类;

在包中的类不能使用默认包中的类;即default package


访问控制符

  • 软件中的某些属性和方法出于程序安全考虑不允许被其它类操作和调用,这就需要使用Java中的访问权限修饰符,Java中的访问权限修饰符有4种
 1. public
 2. protected
 3. 默认(友好的)
 4. private
  • Java中的访问权限修饰符可以修饰成员变量、构造方法、普通方法。

  • 面研究某个访问权限的使用范围需要从以下方法考虑:
    这里写图片描述

  • 访问控制符使用范围

    1. public是最大的访问权限修饰符,其修饰的成员变量、构造方法和普通方法可在任何一个类中被操作或使用;

    2. protected修饰的成员变量、构造方法和普通方法可以在其定义类中、与定义类同包的其它类(可以使子类)中和与定义类不同包但是其子类的类中使用;

    3. 默认(友好的)修饰的成员变量、构造方法和普通方法可以在其定义类中和与定义类同包的其它类(可以使子类)中使用;

    4. private是最小的访问权限控制符,其修饰的成员变量、构造方法和普通方法只能在定义它们的类中被操作或使用;

这里写图片描述
当在不同包的子类中

  • 如果protected修饰的属性和方法均为非静态的,则只能通过子类实例化对象调用其继承过来的属性和方法,而不能使用父类实例化的对象去调用;
  • 如果protected修饰的属性和方法均为静态的,则子类可以通过类名直接调用

封装

java三大特征——继承、多态和封装

  • 封装是Java三大特征之一,指使用公有方法操作类中私有属性以保证数据的安全性。

  • Eclipse中快速生成setter方法getter方法

    1、鼠标定位在类中——>鼠标右键——>点击“Source”——>点击“Generate Getters and Setters…”,出现下图:
    这里写图片描述

    2、点击“Select All”按钮点击“OK”按钮,至此操作完毕。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值