封装性和隐藏性
当我们创建一个类的对象以后,我们可以通过“对象.属性”的方式,对对象的属性进行赋值。但是赋值参数操作要受到属性的数据类型和存储范围的制约(例如年龄要大于0,取款金额要小于存款)。但是在实际情况中,我们往往需要给属性赋值加上额外的限制条件。这个条件就不能在属性声明时体现,我们只能通过方法进行限制条件的添加。(比如setlegs()),同时我们需要避免用户再使用“对象.属性”的方式对属性进行赋值,则需要将属性声明为私有的(private),此时,针对属性就体现了封装性,此外提供公共的(public)方法来设置(setXxx())和获取(getXxx())此属性的值。
1 | class Animal{ |
权限修饰符
4种权限修饰符(从小到大排列):private < default(缺省) < protected < public
4种权限可以用来修饰类及类的内部结构:属性、方法、构造器、内部类。
但是修饰类,只可以用:缺省、public。
构造器
构造器的作用:创建对象;初始化对象的属性
如果没有显示的定义类的构造器的话,则系统默认提供一个空参的构造器
定义构造器的格式:权限修饰符 类名(形参列表){}
一个类中定义的多个构造器,彼此构成重载
一旦我们显示的定义了类的构造器之后,系统就不再提供默认的空参构造器
一个类中,至少会有一个构造器。
1 | public class PersonTest { |
关键字
this
this 可以用来修饰:属性、方法、构造器.
this 修饰属性和方法
在类的方法中,我们可以使用”this.属性” 或 “this.方法” 的方式,调用当前对象属性或方法。但是,通常情况下,我们都选择省略 “this.”。特殊情况下,如果方法的形参和类的属性同名时,我们必须显式地使用 “this.变量” 的方式,表明此变量是属性,而非形参。
在类的构造器中,我们可以使用”this.属性” 或 “this.方法” 的方式,调用当前对象属性或方法。但是,通常情况下,我们都选择省略 “this.”。特殊情况下,如果构造器的形参和类的属性同名时,我们必须显式地使用 “this.变量” 的方式,表明此变量是属性,而非形参。
1 | public void setName(String name){ // 形参和属性重名 |
this修饰构造器
this可以作为一个类中构造器相互调用的特殊格式
1 | class Person{ // 定义Person类 |
package
package语句作为Java源文件的第一条语句,指明该文件中定义的类所在的包。(若缺省该语句,则指定为无名包)。格式为:package 顶层包名.子包名;
1 | package com.yuanbaoqiang.java2; |
improt
- 在源文件中显式的使用import结构导入指定包下的类、接口;
- 声明在包的声明和类的声明之间;
- 如果需要导入多个结构,则并列写出即可;
- 可以使用“xxx.*”的方式,表示可以导入xxx包下的所有结构;
- 如果使用的类或者接口是java.lang包下定义的,则可以省略import结构;
- 如果使用的类或接口是本包下定义的,则可以省略import结构;
- 如果在源文件中,使用了不同包下的同名的类,则必须至少有一个类需要以全类名的显示;
- import static组合的使用:调用指定类或接口下的静态的属性或方法。