基础day06-Java面向对象基础

本文介绍了面向对象编程中类、对象的关系,包括类作为对象模板,对象是类的实例。讲解了成员变量和局部变量的区别,构造方法的作用以及如何通过private和public修饰符进行访问控制。还讨论了equals和==的区别,以及如何通过setter和getter方法管理数据的访问。
摘要由CSDN通过智能技术生成
  1. 关于面向对象的特点:
    1. 角色发生了转换,将我们从指挥者变成了执行者
      1. 在面向对象编程中,我们通过创建对象并定义对象之间的关系,来实现程序的功能。我们成为了执行者,负责创建对象、调用方法等,从而完成程序的执行。
    2. 可以将复杂的事情简单化
    3. 是一种更符合我们思考习惯的思想
  2. 类和对象的关系
    1. 类可以看作是对象的模板或者蓝图,定义了对象的结构和行为
    2. 对象是类的实例,也是类的具体实现
    3. 类和对象之间是一种包含关系
      1. 类包含了一组具有相似特征和行为的对象的共性
      2. 一个类可以创建多个对象,这些对象共享了类定义的属性和行为
      3. 举例来说,如果有一个类 Person,它定义了人的特征和行为(比如姓名、年龄、工作等),那么具体的人(比如小明、小红)就是 Person 类的对象。
  3. 成员变量和局部变量的关系
    1. 在一个类中,成员变量和成员方法的定义顺序并没有强制要求,可以根据需要灵活安排
    2. 成员变量有默认初始化值,局部变量没有默认初始化值
    3. 成员变量在整个类中都可以使用,局部变量只能在所属的方法中使用
    4. 成员变量被定义在类中方法外,局部变量被定义在方法声明上或者方法内部
    5. 成员变量存储在堆内存中,因为它们随着对象的创建而分配内存,并随着对象的销毁而释放
    6. 局部变量存储在栈内存中,因为它们随着方法的执行而临时分配内存,当方法执行结束后就会释放
  4. 关于private的描述
    1. 被private修饰的成员变量和成员方法,只能在本类中使用,不能在其他类中直接访问
    2. private是一个修饰符,可以完成类对成员变量的封装,防止外部非法访问
    3. 类的成员变量被private修饰,如果想让成员变量被其他类使用,可以为成员变量提供对应public的setXxx和getXxx方法
    4. 除了成员变量,private 也可以用来修饰方法,使得方法只能在当前类中被访问
  5. 关于this的描述
    1. this的使用场景:成员变量和局部变量重名
    2. 当局部变量和成员变量重名时候,直接写变量名代表局部变量
public class Person {
    String name; // 成员变量

    public Person(String name) {
        this.name = name; // 使用this关键字将参数name赋值给成员变量name
    }

    public void printName(String name) {
        System.out.println("局部变量name:" + name); // 输出方法的局部变量name
        System.out.println("成员变量name:" + this.name); // 使用this关键字访问成员变量name
    }

    public static void main(String[] args) {
        Person person = new Person("John");
        person.printName("Mike");
    }
}

  1. 关于构造方法的描述
    1. 构造方法必须和类名一致
    2. 同一个类的多个构造方法,可以构成方法重载
    3. 构造方法的返回值类型不能指定具体的类型,它实际上没有返回值类型,甚至不能指定为 void。构造方法的作用是初始化对象,而不是返回值
    4. 定义一个类,如果没有定义构造方法,那么这个类没有构造方法
    5. 当定义了带参数的构造方法,系统默认的不带参数的构造方法依然会自动提供
    6. 构造方法可以使用 return 语句来提前结束方法的执行,并且可以返回一个值(通常用于特殊情况下的处理)
    7. 构造方法的访问修饰符可以是 public、protected、private 或者默认(即不写修饰符),根据需要来设定
  2. 标准类的定义
    1. 成员变量私有
    2. 提供公共setter和getter方法
    3. 提供public修饰的空参构造和满参构造
  3. == 和 equals的区别
    1. 对于基本类型,==比较的是值是,对于引用类型,==比较的是内存地址
    2. equals的方法在String或者Integer等类中会被重写,比较的是内容
    3. 默认情况下,equals 方法和 == 一样,比较的是对象的内存地址,即比较引用是否相等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值