面向对象认识(一)

129 阅读2分钟

面向对象与面向过程的区别?

面向过程是一种以过程为中心的编程思想,就是分析出解决问题所需的步骤,然后通过函数将步骤一步步实现,使用的时候依次调用就可以了。如:组装自行车

面向对象是一种以对象为中心的编程思想,我们只在乎该对象具备的属性与行为,至于怎么实现的步骤我们不关心。如:购买自行车


类与对象的理解?

就是从不同维度描述某一类事物,如鞋类,人类等等。

对象就是某一类事物的具体的一个个体,也叫做实例


如何设计一个类

设计一个类我们一般通过抽取该类共有的属性和行为来进行设计,如学生类:

学生拥有姓名、性别等属性和具备学习等行为

//学生类
public class Student{
	//姓名
    String name;
    //性别
    String sex;
    //学习
    void study(){
    	System.out.println("学习中");
    }
    
}


堆栈内存分析

当通过Student stu1 = new Student();语句创建对象时,会在堆内存中开辟内存空间存放对象实体,并调用构造方法; 同时栈内存中会声明一个变量stu1来存放对象的引用地址,引用地址指向堆中对应的对象实体

public class App{
    public static void main( String[] args ){
    	Student stu1 = new Student();
        stu1.name = "张三";
        stu1.sex = "男";
        Student stu2 = new Student();
        stu2.name = "小红";
        stu2.sex = "女";
    }
}

堆栈内存分析


构造方法

构造方法就是用于构造对象的方法,有以下几点特征:

  • 类中如果没有显式存在的构造方法,必定存在一个隐式无参构造方法;若有显式构造方法,隐式构造方法将不复存在;
  • 构造方法没有返回值
  • 构造方法名与类名一致
  • 构造方法不能使用static修饰,不用优先加载
  • 可以有访问权限修饰符
  • 构造方法可以有多个(参数不同),可理解为方法重载

匿名对象

匿名对象就是没有名字的对象,没有变量名接受的对象

匿名对象有以下几个特征:

  • 只能被调用一次,下一次就找不到了
  • 可作为一次性参数传递
  • 可作为返回值返回

对象的生命周期

  • 开始:从调用构造方法创建对象开始
  • 结束:
    • ①失去引用,等待jvm回收
    • ②jvm强制回收