类和属性
属性 = 成员变量 = field = 域、字段
方法 = 成员方法 = 函数 = method
创建类的对象 = 类的实例化 = 实例化类
类和对象的使用(面向对象思想落地的实现)
1.创建类,设计类的成员
2.创建类的对象
3.通过”对象.属性“ 或 ”对象.方法"调用对象的结构‘
public class OOPText {
public static void main(String[] args) {
//创建Person类的对象(实例化一个类)
Person p1 = new Person();
//调用对象的结构:属性、方法
//调用属性:"对象.属性"
p1.name = "Tom"; //赋值
p1.isMale = true; //赋值
System.out.println(p1.name);//输出
//调用方法
p1.eat();
p1.sleep();
p1.talk("Chines");
}
}
//创建类
class Person {
//属性
String name;
int age =1 ;
boolean isMale;
//方法
public void eat(){
System.out.println("米饭");
System.out.println("馒头");
System.out.println("肉");
}
public void sleep(){
System.out.println("睡觉");
}
public void talk(String language){
System.out.println("人可以说话,使用的是:"+language);
}
}
面向对象的特征
问题引入
当我们创建一个类的对象以后,我们可以通过“对象.属性”的方式,对对象的属性进行复制。这里,赋值操作要受属性数据类型和储存范围的制约。除此之外,没有其他制约条件。但是,在实际问题中,我们往往需要给属性赋值的同时加入限制条件。这个条件就不能在属性声明时体现,我们只能通过方法进行限制条件的添加。此时针对于属性就体现了封装性 当我们创建一个类的对象以后,我们可以通过“对象.属性”的方式,对对象的属性进行复制。这里,赋值操作要受属性数据类型和储存范围的制约。除此之外,没有其他制约条件。但是,在实际问题中,我们往往需要给属性赋值的同时加入限制条件。这个条件就不能在属性声明时体现,我们只能通过方法进行限制条件的添加。此时针对于属性就体现了封装性
封装性的体现
①将类的属性私有化(private),同时用公共的方法(public)来获取和设置
②不对外暴露的私有方法
③单例模式等等
四种权限修饰符
修饰符 | 类内部 | 同一个包 | 不同包的子类 | 同一个工程 |
---|---|---|---|---|
private | Yes | |||
(缺省) | Yes | Yes | ||
protected | Yes | Yes | Yes | |
public | Yes | Yes | Yes | Yes |
对于class的权限修饰只可以用public和default(缺省)
- public类可以在人一地方被访问
- default类只可以在同一个包内部的类访问
属性赋值的先后顺序
①默认初始化
②显式初始化
③构造器中初始化
④通过“对象.方法” 或 “对象.属性”的方式,赋值
以上操作的先后顺序为:① - ② - ③ - ④
JavaBean
JavaBean是一种Java语言写成的可重用组件
所谓JavaBean。是指符合如下标准的Java类
- 类是公共的
- 有一个无参的公共的构造器
- 有属性,且有对应的get、set方法
This关键字的使用
1.this可以用来修饰:属性、方法、构造器
2.this修饰属性和方法
this理解为:当前对象
在类的方法中,我们可以使用“this.属性” 或“this.方法”的方式,调用当前对象属性或方法。但是,通常情况下,我们都选择省略“this”。特殊的情况下,如果方法的形参和类的属性同名时,我们必须显示的使用“this.变量”的方式,表明此变量是属性。而非形参。
在类的构造器中,我们可以使用“this.属性” 或“this.方法”的方式,调用当前对象属性或方法。但是,通常情况下,我们都选择省略“this”。特殊的情况下,如果构造器的形参和类的属性同名时,我们必须显示的使用“this.变量”的方式,表明此变量是属性。而非形参。
this调用构造器
1.我们在类的构造器中,可以显示的使用“this(形参列表)"方式,调用本类中指定的其他构造器
2.构造器中不能通过“this(形参列表)”方式调用自己
3.如果一个类中有n个构造器,则最多有n-1构造器使用了“this(形参列表)”
4.规定:“this(形参列表)”必须声明在当前构造器的首行
5.构造器内部,只能声明一个“this(形参列表)”,用来调用其他构造器
package关键字的使用
1.为了更好的实现项目中的类的挂你,提供报的概念
2.使用package声明类或接口所属的包,声明在源文件的首行
3.包,属于标识符,遵顼标识符的命名规范、规范(xxx_yyy_zzz)、“见名知意”
4.每"."一次,就代表一层文件目录
同一个包下,不能明明同名的接口、类。
不同的包下,可以明明同名的接口或者说类。