2.类和对象的定义与使用( 四 )


在上述的例子中name和age被修饰,只能在类中被访问,不能在其他类中被访问 。
当在Test这个类通过修改name和age时可以看到代码是报错的 。
应该通过定义和方法,提供对name和age的访问以及修改 。
可以看到此时代码不会报错了 。
这种方式实现了封装,能够确保name和age只能通过提供的方法进行访问和修改 。
5.2 包 包的概念:
在面向对象体系中,提出了一个软件包的概念,即:为了更好的管理类,把多个类收集在一起成为一组,称为软件包 。有点类似于目录 。
包命名规则:
只能包含数字、字母、下划线和“.”,但是不能用数字开头,不能是关键字 。通常会用公司的域名的颠倒形式
例:com.bit.demo1
包的使用:
1.在Java源文件的第一行使用语句导入包其他包中的类 。例如:
import java.util.Date;
这个语句表示我们要使用 java.util 包下的Date类,后面就可直接使用该类
2.不在第一行用语句导入包中所需的类,在后面使用该类时这么写,此法较麻烦
java.util.Date date = new java.util.Date();
3.还可以导入一个类,让你想用什么类都无需额外写,只需导入这一个类就行s
import java.util.*
但是在这里更建议直接的指定要导入的类名. 否则还是容易出现冲突的情况.
4.使用 导入包中静态的方法和字段
例如:
import static java.lang.Math.*;
当导入了上述的方法,那么下面这句
double result = Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2));
就可以这么写:
double result = sqrt(pow(x, 2) + pow(y, 2));
可以看到静态导入的方式写起来更方便一些
如何创建一个包:
2. 在弹出的对话框中输入包名, 例如 com.bit.www
3. 在包中创建类, 右键包名 -> 新建 -> 类, 然后输入类名即可.
在创建好包之后,在包中创建的类中最上面会有一个语句来告诉你这个类属于哪个包
注意:在不同包中建相同名称的类是不冲突的,但在相同包下创建相同名称的类是冲突的 。
常见的包:
1. java.lang:系统常用基础类(、),此包从JDK1.1后自动导入 。
2. java.lang.:java 反射编程包;
3. :进行网络编程开发包 。
4. java.sql:进行数据库开发的支持包 。
5. java.util:是java提供的工具程序包 。(集合类等) 非常重要
6. java.io:I/O编程开发包
6.成员
修饰的成员变量,称为静态成员变量,静态成员变量最大的特性:不属于某个具体的对象,是所有对象所共享的 。
6.修饰成员变量
【静态成员变量特性】
1. 不属于某个具体的对象,是类的属性,所有对象共享的,不存储在某个对象的空间中
张三,李四,王五是一个班的,他们上课一定在同一教室上课,那么上课教室就是张三,李四,王五这个几个对像共享的
class Student {private String name;private int age;//private String classRoom;public static String classRoom;public Student(String name, int age) {this.name = name;this.age = age;this.classRoom=classRoom;}public String getClassRoom() {return classRoom;}public void setClassRoom(String classRoom) {this.classRoom = classRoom;}public void sleep(){System.out.println(this.name+"正在睡觉");}}public class Test {public static void main(String[] args) {Student student1=new Student("张三",10);student1.setClassRoom("3-108");Student student2=new Student("李四",10);student2.setClassRoom("3-108");Student student3=new Student("王五",10);student2.setClassRoom("3-108");}}