Java学习笔记——第七天

面向对象编程(Object Oriented Programming,OOP)基础

面向过程编程

开发一个一个的方法,有数据要处理了,我们就调方法来处理。此时程序类似于流水线,按照代码自上而下依次运行。

面向对象编程

开发一个一个的对象来处理数据,把数据交给对象,再调用对象的方法来完成对数据的处理。程序在对象的交互中完成运行。

类与对象

什么是对象

对象就是具体的东西,一个具体的人是一个对象,一辆具体的车也是对象。

什么是类

类就是从对象中抽象出来的一类东西的总称,人这个类就是从一个个具体的人中抽象出来的。

面型对象编程的好处

符合人类的思维习惯,使编程更简单、更直观。

类的格式

public class 类名 {
    修饰符 数据类型 变量名称; //成员变量
    修饰符 返回值类型 方法名称 (...) {...}; //成员方法
    修饰符 类名 (形参列表) {...}; //构造器
    代码块
    内部类
}

成员变量

类内部定义的变量。

成员方法

类内部定义的方法。

构造器

创建对象时调用的方法,其方法名必须与类名一致。

创建对象的格式

类名 变量名 = new 类名(实参列表); //实参列表可以为空

对象怎么使用

  • 访问成员变量:
对象名.成员变量名;
  • 访问成员方法:
对象名.成员方法(...);

对象的执行原理

  1. 当创建对象时,对象的变量名会加载到栈内存中,其对应的类的代码会被加载到方法区中。

  2. 然后在堆内存中开辟一块内存空间,保存创建的对象,其中包含内部的成员变量以及一个类的地址变量,它保存类在方法区中的代码的地址。

  3. 之后栈内存中的对象变量被赋值为堆内存中对象的地址。

如何识别引用类型的变量

只要变量中存储的是对象的地址,此变量就是引用类型的变量。

类和对象的一些注意事项

  • 类名建议用英文单词,首字母大写,满足驼峰模式,且要有意义,比如:Student、Car…

  • 类中定义的变量也称为成员变量(对象的属性),类中定义的方法也称为成员方法(对象的行为)。

  • 成员变量本身存在默认值,默认值与动态初始化数组元素的默认值相同,同学们在定义成员变量时一般来说不需要赋初始值(没有意义)。

默认值

  • 一个代码文件中,可以写多个class类,但只能一个用public修饰,且public修饰的类名必须是代码文件名。

  • 对象与对象之间的数据不会相互影响,但多个变量指向同一个对象时就会相互影响了。

  • 如果某个对象没有一个变量引用它,则该对象无法被操作了,该对象会成为所谓的垃圾对象。

  • Java存在自动垃圾回收机制,会自动清除掉垃圾对象。

this关键字

this是什么

this就是一个变量, 可以用在方法中 ,用来拿到当前对象的地址,可以访问当前对象的成员变量和成员方法;哪个对象调用方法,this就指向哪个对象,也就是拿到哪个对象。

this的的执行原理

当方法被定义好之后,Java会在编译时在方法的参数列表中增加一个this变量,这个this变量会保存该对象的地址。

this的应用场景

  • 解决对象的成员变量与方法内部变量的名称一样时,导致访问冲突问题的:
    • 用在有参构造器中。
    • 用在方法中。

构造器

构造器是什么

创建对象时会自动调用的方法,构造器可以在创建对象时实现成员变量的初始化以及其他的操作,常用于完成对象的初始化。

构造器的格式

public 类名(形参列表) {...}

构造器不需要返回值

构造器的分类

  • 无参构造器:形参列表为空。
  • 有参构造器:形参列表不为空。

构造器的特点

  • 类在设计时,如果不写构造器,Java是会为类自动生成一个无参构造器的。
  • 一旦定义了有参数构造器,Java就不会帮我们的类自动生成无参构造器了,此时就建议自己手写一个无参数构造器出来了。
  • 构造器也可以重载。

封装

面向对象的三大特征

  • 封装
  • 继承
  • 多态

什么是封装

就是用类设计对象处理某一个事物的数据时,应该把要处理的数据,以及处理这些数据的方法,设计到一个对象中去包装起来。

封装的设计规范

合理隐藏,合理暴露。

具体实现:

  1. 将所有成员变量隐藏起来,并同时提供setter和getter方法。
  2. 根据实际需求选择隐藏或者暴露成员方法。

如何控制对象的成员公开或隐藏

  • 公开成员:使用public进行修饰。
  • 隐藏成员:使用private进行修饰。

实体JavaBean(实体类)

实体类是什么

就是一种特殊的类,这些类与现实中的类相似,它只是一个用来保存数据的java类,可以用它创建对象,保存某个事物的数据。

实体类的要求

  1. 成员变量必须私有。
  2. 为所有成员变量提供setter和getter方法。
  3. 必须有无参数构造器。

实体类的应用场景

​ 实体类对应的是软件开发里现在比较流行的开发方式,数据和数据的业务处理相分离。数据的保存使用实体类,数据的业务处理使用操作类。

补充1:成员变量和局部变量的区别

区别 成员变量 局部变量
类中位置不同 类中,方法外 常见于方法中
初始化值不同 有默认值, 不需要初始化赋值 没有默认值,使用之前必须完成赋值
内存位置不同 堆内存 栈内存
作用域不同 整个对象 在所归属的大括号中
生命周期不同 与对象共存亡 随着方法的调用而生,随着方法的运行结束而亡

补充2:IDEA中的快捷方式

IDEA中可以按alt+insert自动生成setter、getter方法和任意参数的构造器。

posted @ 2024-03-06 12:14  zgg1h  阅读(39)  评论(0)    收藏  举报