面向对象简介

1、概念

1、面向对象本质是一种编程范式(一种套路,一种思考方式)
2、面向过程:关注的是每行代码实现细节(缺点:复用性低)
3、面向对象:先把代码实现细节整合到对象身上,只要找到对象就能拥有对象身上的功能(万物皆对象)
4、面向对象基于面向过程,如果场景比较复杂推荐使用面向对象,如果场景比较简单优先推荐面向过程

2、类和对象的关系

1、对一类对象进行抽取,把共同的特征信息抽取成了属性,把共同的行为抽取成了方法,把这些对象抽取成了对应的类。
2、类是对对象的概括,
对象是对类的具体实现(实例化)。
类是描述信息,描述的信息就是对象即将拥有的特征和行为。

3、构造方法

与类同名而没有返回值类型

作用:①②③

1、创建Person类的对象
2、调用构造方法来创建对象—①构造方法是用来保证构建对象
Person p=new Person();
3、public Person(){}------无参构造, 用来初始化对象,new一个对象
系统会默认出现,但一旦有有参构造便不会再继续默认写无参构造,到之后继承时,子类的构造方法在没有调用父类的有参构造时,会自动调用父类的无参构造,以防程序出错,所以需要手动添加无参构造。
4、有参构造(构建对象,②初始化属性----③要支持重载)
public Person(String name){
this.name=name;--------this代表当前类的对象
}
5、可以写return,用于规避不合法的情况

构建对象

形式

1.没有方法返回值类型
2.方法名与类同名

注意

1、构造方法支持重载。
2、如果类中没有定义构造方法会默认提供无参构造,如果类中定义构造方法就不会默认提供无参构造。
3、④一个类中至少含有一个构造方法。----用来构建对象
4、不加static修饰的属性就是非静态属性。
5、java中所有的非静态方法和属性只能通过对象调用
6、构造方法必须与类同名,但普通方法也可以与类同名。

4、this

目的

属性初始化、参与类的信息的描述(可以让类中的属性和成员方法参与进来)
用于有参构造时,初始化属性,方法的就近原则
eg:this.name(代表当前类的对象–正在活动的对象)=name(代表传入的值);

功能

1)关键字,代表当前类的对象(当前类正在活动的对象)
2)this可以代表还没有创建对象、可以代表刚创建对象、可以代表正在使用的对象,this是一个虚拟的对象通过指定对象地址值来代表对象,代表的就是当前类正在活动的对象。
3)this()-----this语句,
在本类的构造方法中去调用本类对应形式的构造方法,
使用在构造方法的首行。
通过参数列表来区分(重载,方法名都相同),然后来调用对应的有参构造。

5、构造代码块

在类内方法外位置{}
构造代码块可以给属性进行初始化,优先于构造方法先执行
无论调用哪个构造方法,都要先执行构造代码块的内容。

6、局部代码块

在方法内{}
控制变量的生命周期以及限制它的使用范围,提高栈内存的利用率
当局部代码块执行完成,里面定义的变量就可以删除。

7、成员变量与局部变量的区别

成员变量和成员方法(不包括构造方法----它是用来创建对象的,不是用来描述性信息的)都是参与描述类的信息

1)定义位置

成员变量:类内方法外
局部变量:方法内(代码块中)

2)使用范围

成员变量:整个类
局部变量:整个方法(当前的代码块/语句中)

3)内存位置

成员变量:堆里,且有默认值
局部变量:栈里,没有默认值

4)生命周期

成员变量:随着对象的创建而产生,随着对象被回收而销毁。
局部变量:随着方法被调用执行才产生,随着方法调用执行结束而销毁。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值