oop面向对象编程

本文介绍了面向对象编程的基本概念,包括面向过程与面向对象的区别、类与对象的概念及其成员属性,构造器的功能与使用方法,以及垃圾回收机制等。此外还探讨了this关键字、static静态特性、final关键字,并对比了继承与组合两种复用方式。

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

  • oop
oop 面向对象编程
编程方式
面向对象和面向过程的思维
1 面向过程是一种执行者的思维,简单的问题可以使用面向过程
2 面向对象是一种设计者的思维,解决复杂,需要协作的问题可以使用面向对象
3 宏观上:通过面向对象进行整体设计,微观上:执行和处理数据使用面向过程

  • 类和对象
类:class 看做是一个模板,系统根据类来定义造出对象,是静态的,
对象:object 对象是类的实例,就是类的具体是实现,是动态的,
-- 类中的三个成员 属性field 方法method 构造器 constrctor 
注意构造器是用于对象的初始化,不是创建对象!
创建对象的步骤 1 分配对象空间,对成员变量进行初始化,2 执行属性的显示初始化 3 执行构造函数 4 返回对象的地址给相关变量
构造器四要素:1 构造器要通过new关键字调用! 2 构造器返回类型是本类型 不能使用reture 3 编译器会自动给一个类定义一个无参构造器
4构造器名字和类名一样
jvm 组成 栈 程序计数器 线程都享, 堆 方法区 元空间
1 栈 是用来执行方法的地方,每一个方法调用都会创建一个栈,每一个线程都会创建一个栈,栈属于线程私有,
2 堆 用来存储创建好的对象和数组,只有一个堆,被所有线程共享,分代算法 垃圾回收工作区
3 方法区就是元空间 存放类的相关信息,静态变量,字符串常量,
垃圾回收器 1 发现无用对象 2 回收无用对象释放空间
无用对象就是没有任何变量引用改变量,
垃圾回收器的算法: 1 引用计数法 2 分代回收
  • this
-this的本质就是 指向当前对象地址
1 在方法中this指向的调用该方法的对象
2 在构造器中this指向正要初始化的对象
3 this()方法是调用构造器的,只能在构造器中使用,必须位于方法第一位,
4 this执行变量时只能是指向成员变量,不能指向静态static变量, 所有一般可以用来区分成员和参数的变量,

在这里插入图片描述

  • static
- static 可以修饰变量和方法  代表是属于类的
- 生命周期和类相同! 是类的公用变量或是公用方法,被类的所有实例共享,
- static 只有一份
-static中不能访问非static成员
- 静态初始化块 用于类的初始化,构造器是对象的初始化
- 先执行静态语句在执行成员变量
  • final关键字
final 修饰变量 不可变固定  修饰方法 不能被子类重写  修饰类后不能被继承 
  • 继承和组合
1 extends 继承  java中类只有单继承 接口是多继承,
子类继承父类后可以得到父类中的全部属性和方法(构造器除外)注意私有属性和方法不能访问,
2 组合 就是父类对象被子类属性引用,结婚就是组合可以复用对方的属性和方法
=============
public class Test {
    public static void main(String[] args) {
        Sanwa sanwa = new Sanwa();
        System.out.println(sanwa.dawa.name);
        System.out.println(sanwa.dawa.getName());
        System.out.println(sanwa.erwa.name);
        System.out.println(sanwa.erwa.getName());
    }
}
class Dawa{
    public String name = "大娃";
    public String getName(){
        return this.name+"吐火!";
    }
}
class Erwa{
    public String name = "二娃";
    public String getName(){
        return this.name+"吐水!";
    }

}
class Sanwa{
    /** 组合 核心就是将一个对象赋值给本类的一个属性
     * */
    Dawa dawa = new Dawa();
    Erwa erwa = new Erwa();
} 
  • == 和equals()
 - "==" 表示比较双方是否相同,基本类型是比较值,引用类型是比较地址相同就是相同
 - equals 表示提供定义对象内容相等的逻辑,判断内容是否相同是根据hashcode值是否相同
  • String
- String 就是将char串起来 统一使用,
- String类是不可变字符序列  这类是final修饰的 一旦赋值之后就不能更改,字符串有缓存池,是可以共享
- 连接符 +
- String buffer 线程安全 可变字符序列 可以修改 
- String joiner 可以添加前缀后缀和间隔 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值