1. 什么是类?什么是对象?
类就相当于一个类别,例如:狗,猫,大象
具体的某一个就是我们说的对象,这也是我们说的一个思想叫满足is a
- 类中包含:属性(特征)和方法(行为)
2. 如何创建类?如何创建对象?如何访问成员?
例子:
public class Person {
//成员变量或者实例变量
String name;
int age;
public void sayHi(){
System.out.println("Person.sayHi");
}
public static void main(String[] args) {
Person person = new Person();
person.sayHi();
}
}
3. 方法的签名:方法名+参数列表
属于java技术名词,大家从一开始就要去累积和使用
4. 方法的重载(overload):
1:是在同类中
2:方法名相同,参数列表不同(参数个数不同,参数顺序不同)
3:课后题:如果返回值不同,是否发生了重载?
4. 构造方法:又称为构造函数、构造器、构建器
作用:给我们的成员变量赋初始值的。
5, this用法’
this是指代当前的当用对象
this的用法:
1:this.成员变量---------------------------------访问成员变量
2:this.方法名()---------------------------------调用方法(一般不用)
3: this()-------------------------------------------调用构造方法(一般不用)
package test;
public class Person {
//成员变量或者实例变量
String name;
int age;
Person(){
name = "zhansan";
age = 12;
}
//方法:自己调自己叫递归
Person(String name,int age){
this();
/*
为了避免构建出两个对象这种问题的出现,Java在编译时对这种情况做了强校验,
用户不能再同一个方法内调用多次this()或super(),
同时为了避免对对象本身进行操作时,对象本身还未构建成
功(也就找不到对应对象),所以对this()或super()的调用只能
在构造方法中的第一行实现,防止异常。
*/
// super();
/*
在构造函数中,如果你不指定构造器之间的调用关系,那么编译器会给你加上super();
目的是在初始化当前对象时,先保证了父类对象先初始化。所以,你指定了构造函数间的
调用,那么this()必须在第一行,以保证在执行任何动作前,对象已经完成了初始化。
构造函数只能被构造函数调用,因为对象只会初始化一次。
*/
this.name = name;
this.age = age;
}
Person(String name,int age,int sex){
this("sw",23);
}
public void sayHi(){
/*
在普通的成员方法中,如果调用super()或者this(),
你是想要重新创建一个对象吗?
Java为了保证自身对象的合理性,不允许你做这样的操作
*/
// this();
System.out.println("Person.sayHi");
}
public void sayHi(String name,int age){
name ="ssdf";
this.age = age;
}
public String sayHi(int age,String name){
return null;
}
//toString->写在Object类,是我们所有类的超类,所有的类直接或者
// 间接都继承了这个类,toString重写主要是我们自定义的类
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
public static void main(String[] args) {
Person person = new Person();
person.sayHi();
System.out.println(person);
}
}
3. null:表示空,没有指向任何对象
若引用的值为null,则该引用不能进行任何点操作了,
若操作则发生NullPointerException空指针异常