String的特性
String的存储地址是字符串常量池中,是使用char型数组进行存储的。String是一个不可变的字符序列。
为甚么要封装?
隐藏对象内部的复杂性,便于外界调用,提高系统的可扩展性、可维护性。
高内聚、低耦合
- 高内聚:类的内部操作细节自己完成,不允许外部干涉
- 低耦合:进队外暴露少量的方法用于自己调用
封装性的引入
如果存在一个变量 leg
- 问题:如果我们要对leg变量的输入值规定一个合理的区间,我们怎样做?
- 答:我们可以为用户提供一个setleg方法,让用户设置合理的leg数值,同时把leg变量的修饰符设置为 private
- 此时就体现了属性的封装性
封装性的体现
- 我们将类的属性XXX私有化(private),同时提供公共的(public)方法来获取(getXXX)和设置(setXXX)\
- 单例模式
- 不对外暴露的私有方法
封装性和权限修饰符的配合
- Java规定4种权限修饰符(从小到大排列):private、缺省、protected、public
- 4种权限修饰符可以用来修饰类及类的内部结构:属性、方法、构造器、内部类
- 修饰类本身的话,只能使用缺省、public
类的结构之三–构造器constructor
- 构造器的作用:创建对象;初始化对象的信息
- 如果没有显式定义一个类的构造器,则系统默认提供一个空参的构造器。
- 定义构造器的格式:权限修饰符 类名(形参列表){ }
- 一个类中定义多个构造器,彼此构成重载
- 一旦显式定义了类的构造器,则系统就不再提供默认的空参构造器
- 构造器没有返回值
- 一个类里面一定有构造器
总结属性赋值的先后顺序
首先,在java代码中,有哪些地方可以进行属性赋值?
1 默认初始化;2显式初始化;3构造器中赋值;4通过“对象.方法、对象.属性”赋值
以上四种赋值方法的先后顺序:1-2-3-4
JavaBean是一种由java语言写成的可重用的组件
所谓的JavaBean是指:满足以下表中的Java类
- 类是公共的
- 有一个无参的公共的构造器
- 有属性,有对应的get、set方法
this关键字
-
为什么要使用this关键字呢?
用来区分方法形参和对象属性 -
this关键字的使用
可修饰属性、方法、构造器
this理解为:当前对象 -
说明:在类的方法中,我们可以使用“this.属性”或“this.方法”的形式,调用当前对象的属性或方法。但是通常我们都省略了“this关键字”。特殊情况下,如果方法的形参和类的属性同名时,我们必须显式的使用“this.变量”的方式来表示此变量是对象的属性,而非形参。
-
说明:在类的构造器中,我们可以使用“this.属性”或“this.方法”的形式,调用当前对象的属性或方法。但是通常我们都省略了“this关键字”。特殊情况下,如果方法的形参和类的属性同名时,我们必须显式的使用“this.变量”的方式来表示此变量是对象的属性,而非形参。
-
this调用构造器
a)我们在类的构造器中,可以通过显式使用“this(形参列表)”的方式,来调用本类中指定的其他构造器;
b)构造器中不能通过“this(形参列表)”的方式调用自己;
c)如果一个类中有n个构造器,则有n-1个构造器里面使用“this(形参列表)”;
d)规定:“this(形参列表)”必须声明在当前构造器的首行;
e)构造器内部,最多只能声明一个“this(形参列表)”,用来调用其他的构造器。
package关键字的使用
- 作用:为了更好的实现项目的管理,提供了包的概念
- 用法:使用package声明类或接口所属的包,声明在源文件的首行
- 命名规范:属于标识符,遵循标识符的命名规则
- 补充说明:一个“.”就属于一层文件目录;同一个包下,不能有同名的接口和类
MVC设计模式
将程序分为三个层次:视图模型层、控制器层、与数据模型层
import关键字的使用
- 作用:在源文件中显式使用import结构可以导入指定包下的类、接口
- 用法:声明在包的声明和类的声明之间,可以使用xxx.*的方式,表示可以导入xxx包下的所有结构
- 补充说明1:如果使用的类和接口是java.lang包下定义的,则可以省略import;
- 补充说明2:如果使用的类和接口是本包下定义的,也可以省略import;
- 补充说明3:如果在源文件中,使用了不同包下的同名类,则必循有一个类要以全类名的方式显示。