面向对象基础语法


面向对象

1.概念

  • 面向过程: C语言
    思想:当需要实现一个功能的时候,看中的是每一个步骤怎么做,整体的过程是怎么样的。每一个操作都需要亲力亲为
  • 面向对象: Java、C++ 适合大型开发场景
    思想: 当需要实现一个功能的时候,不看重具体的过程和步骤是怎样的,而是关心“谁能帮我做这件事”
    三大特征: 封装继承多态
  • 根据 类 实例化(创造) 对象。
    定义类的注意事项:一个Java文件(.class文件)中可以定义多个类,但是只能有一个类是用public 修饰的,public修饰的类名必须是Java代码的文件名称。

2.对象内存图

成员方法 在 堆中只是一个地址,还需到 方法区 寻找。 方法区中.class文件 ; 堆中 new出的东西 (new几次,堆中就有几个对象);在这里插入图片描述

两个对象时:当Phone two = one时,one和two就会指向同一个对象(地址)。
在这里插入图片描述

3.局部变量与成员变量

区别:

  1. 定义位置不同
    局部变量: 定义在方法内。 (成员方法的形参其实是一个局部变量)
    成员变量: 直接定义在 类中,在方法的外面。
  2. 内存位置不同
    局部变量:在栈内存中
    成员变量:在堆内存中(new 出来)
  3. 生命周期不一样
    局部变量:随着方法的进栈而出现,出栈而消失
    成员变量:随着对象被创建而出现,对象被JVM回收而消失
  4. 默认值不一样
    局部变量:没有默认值,必须赋值
    成员变量:有默认值(堆中)

4.this关键字

  • 局部变量成员变量 重名时,方法根据“就近原则”使用局部变量。
  • this . 成员变量 区分重名的 局部变量
  • 作用 :将重名的 成员变量和局部变量区分开。
  • this 关键字代表的是“当前对象”地址,用于访问当前对象的成员变量、成员方法 ,通过谁调用的方法,谁就是this

5.POJO类

:Plain Old Java Object

“标准的类”:
①所有成员变量 private 私有化
②对每一个成员变量都编写一对Setter、Getter方法
③编写无参构造方法
④编写全参构造方法
注:boolean类型是setXXX() 和 isXXX()

6.几个概念

1.private关键字

  一旦使用private关键字对成员修饰,那么超出本类范围之外,就不能直接访问了。
  但可以“间接访问”,在本类中编写一对 setter(专门设置数据的)、getter(专门获取数据的) 方法。Eg. Public int getAge() { return age}

2.封装

:隐藏实现细节,暴露合适的访问方法。(合理隐藏,合理暴露)

  类中 对成员变量使用private关键进行隐藏,使用getter、setter方法对其暴露 就是对封装的一种使用。

  好处:加强程序代码安全性;适当封装可以提升开发效率,同时让程序更容易理解和维护。

3.标准JavaBean

:可以理解为 实体类,其对象可以用于在程序中封装数据

满足: 成员变量使用private修饰;提供每一个成员变量对应的setXxx()/getXxx() ; 必须提供一个无参构造器。

4.构造方法(构造器)

:专门用来创建对象的方法。当通过new关键字创建对象时,其实就是在调用构造方法。

  格式: public 构造方法名( 参数 ){ }  //无返回值类型,通常return省略, 方法名称所在类名称 完全一样
  Person one = new Person()  //可以将Person() 当做构造方法。调用构造方法就是 new,若有参数直接在new 后的()写。

  可以重载(Overload) -->名称相同参数不同 —> 重载构造方法 可以在new的同时对 成员变量赋值。
  注意: 若构造方法没有自定义,就会默认设置一个无参、无方法体的构造方法,若自定义了至少一个,将不再自动设置。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值