• 将类的某些信息隐藏在类内部,不允许外部程序直接访问
• 通过该类提供的方法来实现对隐藏信息的操作和访问
• 隐藏对象的信息
• 留出访问的接口
1、只能通过规定的方法访问数据
2、隐藏类的实例细节,方便修改和实现
封装
修改属性的可见性
创建 getter/setter 方法
在 getter/setter 方法中 加入 属性控制语句
设为private
设为public
用于属性的读写
对属性值的合法性进行判断
作用:
1、管理Java文件
2、解决同名文件冲突
语法:
package 包名;
例:package com.imooc.animal;
注意:
1、必须放在Java源文件中的第一行
2、一个Java源文件中只能有一个package语句
3、包名全部英文小写
4、命名方式:域名倒序+模块+功能
语法:
import 包名.类名;
例:
导入包中全部类:
import com.imooc.*;
导入包中指定类:
import com.imooc.animal.Cat;
java.lang 包含java语言基础的类
java.util 包含java语言中各种工具类
java.io 包含输入、输出相关功能的类
1、static+属性---静态属性
2、static+方法---静态方法
3、static+类---不存在
4、static+方法内局部变量---不存在
静态成员随类加载产生,直至类销毁才回收
1、可以直接调用同类中的静态成员
2、不可以直接调用同类中的非静态成员
3、可以通过实例化对象后,对象调用的方式完成非静态成员调用
1、通过{ }可以形成代码块
2、方法内的代码块称为:普通代码块
3、类内的代码块称为:构造代码块
4、构造代码块前+static:静态代码块
1、无论实例产生多少对象,静态代码块只执行一次
2、构造代码块随实例化过程调用
3、普通代码块随方法调用执行
包名一般为小写,而类名的第一个字母一般为大写,这样在引用时,可以明显的分
辨出包名和类名。如果在类的定义之前没有使用package定义包名,那么该类就属于缺
省的包。
可以更好的组织类,包与文件夹类似,文件夹可以将不同的文件放在同一个文件夹
中,而包也可以将不同的类文件放在同一包中。
减少类名的冲突问题,这也与文件夹类似,同一文件夹中的文件不能重名,不同文
件中的 文件可以重名,同一包中的类名不能重复,不同包中的类名可以重复。
对包中的类起了一定的保护作用,详见 Java 的访问控制(在后面的课程中会详细
讲解~~)。
使用 package 关键字指明类所在的包。 package 语句必须在文件的最前面。 编译
时可使用 javac –d . Test.java 自动产生包需要目录。 可以使用 java testPackage.Test
来执行编译后的代码。
使用了包机制后,如果在一个类中使用了其他包中的类,需要使用 import来引入。
直接引用指定的类,如 import java.util.Vector。
引用一个包中的多个类,如 import java.awt.*。 *号代替类名,但不能代替包名,如
import java.awt.*,只引用 java.awt 下的类,而不引用 java.awt 下的子包里面的类。
import java.awt.F*,这种使用方法是错误的。
import 语句在所有类定义之前,在 package 定义之后。 import 只告诉编译器及解
释器哪里可以找到类、变量、方法的定义,而并没有将这些定义 引入代码中。
如果要使用的类是属于 java.lang 包的,那么可以直接使用类名来引用指定的类,而
不需要加上包名,因为包 java.lang 不用显示使用 import,它是缺省引入的。 如果要使
用的类在其它包(java.lang 除外)中,那么可以通过包名加上类名来引用该类, 如
java.awt.Font。
对于经常要使用的类(该类在其它包中),那么最好使用 import 引用指定的包,如
java.awt.*。
如果import引入的不同的包中包含有相同的类名,那么这些类的使用必须加上包名。