尚硅谷JavaSE基础
6.3.4 javabean
- JavaBean是一种Java语言写成的可重用组件。
- 所谓javaBean,是指符合如下标准的Java类:
- 类是公共的
- 有一个无参的公共的构造器
- 有属性,且有对应的get、set方法
- 用户可以使用JavaBean将功能、处理、值、数据库访问和其他任何可以用java代码创造的对象进行打包,并且其他的开发者可以通过内部的JSP页面、Servlet、其他JavaBean、applet程序或者应用来使用这些对象。用户可以认为JavaBean提供了一种随时随地的复制和粘贴的功能,而不用关心任何改变。
public class TestJavaBean{ private String name; //属性一般定义为private private int age; public TestJavaBean(){} public int getAge(){ return age; } public void setAge(int age){ this.age = age; } public String getName(){ return name; } public void setName(String name){ this.name = name; } } |
6.4 包
6.4.1 package语句
1. 为什么要使用包
当程序中涉及的类越来越多时, 类的功能含义以及如果有同名类该如何处理的问题就出现了.
我们希望把功能类似的一组类放在一起, 有利于管理和维护, 在java中使用了”包”的概念来分类管理
包和目录非常接近, 但是虽然文件系统中是以目录的形式出现的, 但是在程序中包不是目录,目录也不是包.
2. 如何使用包
在程序的第一行添加语句
package 包名.子包名.子子包名……;
包目录深度没有限制, 但也不宜太深
package的作用就是让编译器编译代码时, 把生成的class文件放置到指定的包目录中, 并在类中记录包信息.
包名及子包结构通常符合下列规范,由四个部分组成:
机构类型名称.机构名称.项目名称.模块名称
3. 使用包带来的问题
一旦源文件中使用了package语句, 那么这个源文件中的所有类都会被放置到指定的包中,
带来2个问题
- 包中的所有的类如果被别的包中的类访问时, 不能再使用简单类名(simple name), 必须使用全限定名称(qualified name), 全限定类名 就是所有的包名.类名.
- 如果类是主类, 那么在执行主类时, 必须使用全限定类名.
- 编译源文件时必须加上选项-d 生成的包目录及其中的类文件的目标目录, 通过这个目录是当前目录, 在eclipse中这个目录是bin
package com.atguigu.javase.javabean;
public class Teacher { // Teacher类在其他包的类中使用时,必须使用全限定名称 private String name; private int age = 30; private String gender = "女"; // 可以通过构造器完成对关联对象的初始化 public Teacher(String name, int age, String gender) { this.name = name; this.age = age; this.gender = gender; } public void setName(String name) { this.name = name; } public String getName() { return name; } public void setAge(int age) { this.age = age; } public int getAge() { return age; } public void setGender(String gender) { this.gender = gender; } public String getGender() { return gender; } public String say() { return "姓名:" + this.name + ",年龄:" + this.age + ",性别:" + this.gender; } } |
package com.atguigu.javase.test;
public class TeacherTest { public static void main(String[] args) { //Teacher t = new Teacher("李四", 25, "女"); // 编译时这行语句就会报错!!! com.atguigu.javase.javabean.Teacher t = new com.atguigu.javase.javabean.Teacher(“李四”,25,”女”); System.out.println(t.say()); } } |
并且在命令行中执行此主类时必须使用全限定类名
java com.atguigu.javase.test.TeacherTest