- 面向对象
- 1.概念
- 2.对象内存图
- 3.局部变量与成员变量
- 4.this关键字
- 5.POJO类
- 6.几个概念
- 1.private关键字
- 2.封装
- 3.标准JavaBean
- 4.构造方法(构造器)
面向对象 1.概念
- 面向过程: C语言
思想:当需要实现一个功能的时候,看中的是每一个步骤怎么做,整体的过程是怎么样的。每一个 *** 作都需要亲力亲为。 - 面向对象: Java、C++ 适合大型开发场景
思想: 当需要实现一个功能的时候,不看重具体的过程和步骤是怎样的,而是关心“谁能帮我做这件事”
三大特征: 封装、继承、多态。 - 根据 类 实例化(创造) 对象。
定义类的注意事项:一个Java文件(.class文件)中可以定义多个类,但是只能有一个类是用public 修饰的,public修饰的类名必须是Java代码的文件名称。
成员方法 在 堆中只是一个地址,还需到 方法区 寻找。 方法区中.class文件 ; 堆中 new出的东西 (new几次,堆中就有几个对象);
两个对象时:当Phone two = one时,one和two就会指向同一个对象(地址)。
区别:
- 定义位置不同
局部变量: 定义在方法内。 (成员方法的形参其实是一个局部变量)
成员变量: 直接定义在 类中,在方法的外面。 - 内存位置不同
局部变量:在栈内存中
成员变量:在堆内存中(new 出来) - 生命周期不一样
局部变量:随着方法的进栈而出现,出栈而消失
成员变量:随着对象被创建而出现,对象被JVM回收而消失 - 默认值不一样
局部变量:没有默认值,必须赋值
成员变量:有默认值(堆中)
- 当 局部变量 与 成员变量 重名时,方法根据“就近原则”使用局部变量。
- this . 成员变量 区分重名的 局部变量
- 作用 :将重名的 成员变量和局部变量区分开。
- this 关键字代表的是“当前对象”地址,用于访问当前对象的成员变量、成员方法 ,通过谁调用的方法,谁就是this
:Plain Old Java Object
“标准的类”:
①所有成员变量 private 私有化
②对每一个成员变量都编写一对Setter、Getter方法
③编写无参构造方法
④编写全参构造方法
注:boolean类型是setXXX() 和 isXXX()
一旦使用private关键字对成员修饰,那么超出本类范围之外,就不能直接访问了。
但可以“间接访问”,在本类中编写一对 setter(专门设置数据的)、getter(专门获取数据的) 方法。Eg. Public int getAge() { return age}
:隐藏实现细节,暴露合适的访问方法。(合理隐藏,合理暴露)
类中 对成员变量使用private关键进行隐藏,使用getter、setter方法对其暴露 就是对封装的一种使用。
好处:加强程序代码安全性;适当封装可以提升开发效率,同时让程序更容易理解和维护。
3.标准JavaBean:可以理解为 实体类,其对象可以用于在程序中封装数据
满足: 成员变量使用private修饰;提供每一个成员变量对应的setXxx()/getXxx() ; 必须提供一个无参构造器。
4.构造方法(构造器):专门用来创建对象的方法。当通过new关键字创建对象时,其实就是在调用构造方法。
格式: public 构造方法名( 参数 ){ } //无返回值类型,通常return省略, 方法名称与所在类名称 完全一样
Person one = new Person() //可以将Person() 当做构造方法。调用构造方法就是 new,若有参数直接在new 后的()写。
可以重载(Overload) -->名称相同,参数不同 —> 重载构造方法 可以在new的同时对 成员变量赋值。
注意: 若构造方法没有自定义,就会默认设置一个无参、无方法体的构造方法,若自定义了至少一个,将不再自动设置。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)