java基础笔记006 --面向对象
(重要概念及遇到问题)
今日内容
1. 【理解】 什么是面向对象
2. 【理解】 类和对象的关系
3. 【掌握】 类的定义和使用
4. 【掌握】 三大特征之封装
5. 【掌握】 this关键字的使用
一、面向对象概述
1. 符合了我们人类思考习惯的思想
2. 将复杂的事情进行简单化了
3. 将执行者变成了指挥者(角色发生了改变)
二、类和对象
//类
public class 类名{
//构造函数,如:
public 类名(){}
//属性,如:
int a = 4;
//方法
public void add(){
……
}
}
//对象
类名 对象引用变量名 = new 类名(参数列表);
类是对一类事物的描述,是抽象的(是大量对象共性(属性、行为)的抽象)
对象是一类事物的实例,是具体的(对象是类在现实世界中的具体体现)
类是对象的模板,对象是类的实体
- 类在new 对象时,创建了对象并对属性进行了初始化(数据类型默认值)。
类被创建后,类的引用存放在栈中,new的对象存放在堆中,常量存放到常量池
不同的new生成的对象不同,在堆中存放的位置也不同,
Student s1 = new Student();
Student s2 = new Student();
//s1==s2为false
引用数据类型在比较式,除值外,还会比较引用变量存储的地址是否相等。
用来创建对象并对成员变量进行赋值的方法
无论是否定义,所有类默认提供了无参构造方法,但如果自定义构造方法,默认提供的无参构造方法就会失效。
- 格式
修饰符 构造方法名/类名(参数列表){
// 方法体
}
- 使用
构造方法只能由new 关键字能调用:
public class Student{
int i;
public Student(int i){
this.i = i;
}
}
///
Student s = new Student(4);
- 构造方法与普通方法比的特点
1.构造方法没有返回值类型
2.构造方法方法名必须是类名
3.构造方法的参数列表来源于类的成员变量
三、this关键字
-
当类中方法中定义了和成员变量名相同的局部变量时,采用this.属性名,加以区分。
-
根据就近原则,this关键在在那个类中就表示那个类的对象的引用。
-
this关键字调用构造方法时,this(参数); ,可在自定义构造方法中使用this关键字实现构造方法间调用。
//构造方法间调用
public class A {
int number;
public A(int a){
//有参调用无参构造
this();
System.out.println("有参构造函数执行了……");
}
public A(){
System.out.println("无参构造函数执行了……");
}
public void aa(){
System.out.println("属性a="+number);
}
}
public class Test4 {
public static void main(String[] args) {
A a = new A(2);
a.aa();
}
}
//输出结果
无参构造函数执行了……
有参构造函数执行了……
属性number=0