面向对象三大特性:封装、继承、多态。
1.封装
将一系列相关事物的共同的属性和行为提取出来,放到一个类中,同时隐藏对象的属性和实现细节,仅对外提供公共的访问方式。
【JavaBean类就可以看作是封装的完美案例。】
setter和getter
其实指的分别是setXxx和getXxx两个函数。setXxx可以修改对应属性的值,而getXxx则可以获取对应属性的值。
他俩能给private属性赋值个取值。
this
每一个创建的对象都有一个this属性,指向该对象本身(类似于指针,但在Java中叫做引用)。
- 用法:
①this.属性名; (可调用当前对象的属性,this.属性名就是当前对象的属性)
②this.方法名(参数); (可调用当前对象的方法)
③知识延申 :
PS : this(参数列表) 可以访问本类的构造器。但要注意:Δ此时this后不需要加"."。Δ该途径只能在构造器中使用,且使用时必须置于构造器的首句。我们称之为“构造器的复用”。
可以解决形参名与属性名的重名问题。
package knowledge.define;
public class Phone {
//成员变量:
private int age;
//this 关键字对于属性的应用:
public void pintAge () {
int age = 10;
System.out.println("1:" + age);
System.out.println("2:" + this.age);
}
}
public class
TestPhone {
public static void main(String[] args) {
//1.创建对象
Phone p = new Phone();
//2.调用成员方法
p.pintAge();
}
}
1:10
2:0
因为this.age没有setAge赋值,整型默认值为0
构造器
构造器,也叫构造方法,指用来帮助创建对象的方法,但仅是帮助。它不是用来创建新对象的,而是完成对新对象的初始化。
实际上是:new关键字来创建对象,并在堆内存中开辟空间,然后使用构造器完成对象的初始化。
- 构造器需要满足的要求:
构造方法名必须与类名相同!(包括大小写)
构造方法没有返回值!(但是也可以在方法内部写一个return) - 当类中没有定义任何构造器时,该类默认隐含一个无参构造。这也是为什么我们之前写过的类中没有定义构造器,却依然可以创建该类的对象,因为系统默认给出了无参构造,所以就会以默认的无参构造对新对象进行初始化
- 构造器可以重载,就和方法一样,同一个类中可以定义多个构造器。
- 构造器是在执行new关键字的时候,由系统来完成的,即在创建对象时,系统会自动匹配并调用该类的某个构造器完成对对象的初始化。
构造器示例:
public class Phone {
private int age = 11;
//公有的空参构造 (重点)
public Phone() {
System.out.println("这是空参构造,成功调用此构造时打印这句话");
}
public Phone(int age) {
System.out.println("这句话打印出来,说明带参构造被成功调用");
this.age = age;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
public class