/*
* 封装性的体现:
* 我们将类的属性XXX私有化(private),同时提供公共的(public)方法获取(getXxx)和设置(setXxx)
* 拓展:封装性的体现;
* 封装性的体现,需要权限修饰符来配合
* 1.Java规定的4种权限:
* private,类内部
* 缺省,类内部+同一个包中
* protected,类内部+同一个包中+不同包的子类
* public,类内部+同一个包中+不同包的子类+同一个工程中
* 2.四种权限可以用来修饰类以及类的内部结构:属性,方法,构造器,内部类
* 修饰类的话:缺省,public
*/
public class Oreder {
private int orderPrivate;
int orderDefault;
public int orderPublic;
private void methodPrivate() {
orderPrivate=1;
orderDefault=2;
orderPublic=3;
}
void methodDefault() {
orderPrivate=1;
orderDefault=2;
orderPublic=3;
}
public void methodPublic() {
orderPrivate=1;
orderDefault=2;
orderPublic=3;
}
}
/*
* 一、package关键字的使用
* 1.为了更好的实现项目中的类的管理
* 2.使用package声明类或接口所属的包,声明在源文件的首行
* 3.包,属于标识符,遵循标识符的命名规则、规范(xxxyyyzzz)
* 4.每"."一次,就代表一层文件目录
* 5.同一个包下,不能命名同名的接口和类
*
* 二、import关键字的使用
* import:导入
* 1.在源文件中显示的是哟个import结构导入指定的类、接口
* 2.声明在包和类之间,多个声明并列写出即可
* 3.可以使用"xxx.*",表示导入xxx包下的所有结构,如果使用子包下面的结构仍需要显示
* 4.如果接口是Java.lang包或者本包下定义的则可以省略import结构
* 5.在源文件中,使用不同包下的同名的类,则必须至少有一个类需要以全类名的方式显示
*
* 6.import static:导入指定类或接口中的静态结构:属性或方法
*/
public class PackageImportTest {
}
/*
* 类的结构之三:构造器(或构造方法,constructor)的使用
* construct:建设,建造 construction:CCB constructor:建设者
* 一、构造器的作用:
* 1.创建对象
* 2.初始化属性
* 二、说明:
* 1.如果没有显示的定义类的构造器的话,系统默认提供一个空参的构造器
* 2.定义构造器的格式:权限修饰符 类名(形成列表){}
* 3.在一个类中定义多个构造器,构成重载
* 4.一旦我们显示的定义了类的构造器之后,系统就不再提供默认的空参构造器
* 5.在一个类中,至少会有一个构造器。
*
* this关键字
* 1.this可以用来修饰属性,方法,构造器
* 2.修饰属性和方法:理解为当前对象
* this.属性或this.方法调用当前对象的属性或方法,通常省略
* 当形参和类的属性同名时,必须使用this.变量的方式,表面变量是属性
* 3.this调用构造器
* 我们在类的构造器中,用this(形参列表)方式,调用本类中指定的其他构造器
* 不能通过this(形参列表)方式调用自己
* 构造器内部最多只能声明一个,且放在第一行
*/
public class PersonTest {
public static void main(String[] args) {
//创建类的对象:new+构造器
Person p1=new Person();
p1.eat();
}
}
class Person{
//属性
private String name;
private int age;
//构造器
public Person() {
this.eat();
System.out.println("Person.......");
}
public Person(int age) {
this();//调用构造器
this.age=age;
}
//方法
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 eat() {
System.out.println("吃饭");
}
public void play() {
System.out.println("玩游戏");
}
}