CGBTNs2201晚上串讲-面向对象复习

本文介绍了Java中的类和对象概念,包括它们的定义、创建方式以及成员访问。详细讲解了方法签名、方法重载、构造方法的作用,并通过示例代码展示了this关键字的三种用法。此外,还讨论了null值在Java中的含义和使用注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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空指针异常

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值