JavaSE学习笔记_第六章_面向对象入门

第6章 面向对象入门

编程语言发展史:

  • 面向机器
  • 汇编语言
  • 面向过程
  • 面向对象
  • 面向切面
  • 面向服务

1. 面向过程和面向对象

面向过程(OPP,Procedure Oriented Programming):是一种以事物为中心的编程思想。主要关注“怎么做”,即完成任务的具体细节。

关注功能行为 —— 执行者

​ 行为1

​ 行为2

​ 行为3

面向对象(OOP,Object Oriented Programming):是一种以对象为基础的编程思想。主要关注“谁来做”,即完成任务的对象。

行为是事物所具备的功能,我们使用事物来执行 —— 指挥者

​ 事物.行为1

​ 事物.行为2

​ 事物.行为3

面向切面(AOP,Aspect Oriented Programming):基于 OOP 延伸出来的编程思想。主要实现的目的是针对业务处理过程中的切面进行提取,它所面对的是处理过程中的某个步骤或阶段,以获得逻辑过程中各部分之间低耦合性的隔离效果。

Java 对象分为三类:

  • JDK 中提供的类
  • 开发人员自定义的类
  • 引入第三方的类

2. 类和对象

  • 类是一种描述,描述的有什么,能做什么,对同一类事物的公共特征的描述

  • 有什么:类的属性,类的变量

  • 做什么:类的行为,类的方法

  • 对象是给描述赋值,同一类事物中具体的那一个,一个类有多个对象

  • 找对象做事情

2.1 类的组成

类的组成:

  • 属性:成员变量
  • 行为:成员方法

2.2 类的定义

全面定义类

package 包名;
[修饰符] class 类名 [extends 父类] [implements 接口名] {
	成员变量; // 一般为基本数据类型,也可以是引用类型
	构造方法;
    成员方法;
}

2.3 对象的使用

对象的创建:变量的创建,分配内存空间

对象属性的使用与赋值:

  • 使用:对象名.属性
  • 赋值:对象名.属性 = 值

对象方法的使用:对象名.方法名()

2.4 对象的内存模型

1.堆栈模型

  • 对象:引用类型变量,即容器
  • 栈:存放的是实例化后对象的堆地址
  • 堆:实例化后的对象,new 时在堆里为对象开辟了一块空间

2.变量比较

  • ==
    • 基本数据类型:比较值
    • 引用类型:比较地址
  • equals
    • 引用类型:比较地址
    • String 类:比较值(String 类中的 equals() 被重写了)

3. 对象的属性

3.1 变量的作用域

变量声明的位置决定了变量的作用域。

Java 的变量作用域一共有四种,分别是类级、对象实例级、方法级、块级。

  1. 类级变量又称全局级变量或静态变量,需要使用 static 关键字修饰,类级变量在类定义后就已经存在,占用内存空间,可以通过类名来访问,不需要实例化。
  2. 对象实例级变量就是成员变量,实例化后才会分配内存空间,才能访问。
  3. 方法级变量就是在方法内部定义的变量。
  4. 块级变量就是定义在一个块内部的变量,变量的生存周期就是这个块,出了这个块就消失了,比如 if、for 语句的块,还有 static 块。

3.2 成员变量(全局变量)和局部变量

成员变量:属于对象,位于堆内存中

局部变量:属于方法,位于栈内存中

二者的区别:

  • 在这里插入图片描述

  • 在同一个方法中不允许有同名的局部变量,不同方法中,可以有

  • 在同一个类中不允许有同名的成员变量,不同类中,可以有

  • 变量同名时,局部变量具有更高的优先级

成员变量的默认初始值:

在这里插入图片描述

4. 对象的行为

4.1 方法调用

方法之间运行互相调用,不需要知道方法的具体实现,提高了效率

调用规则:

  • 同一个类中,非 mian 方法之间可以之间相互直接调用
  • 不同的类中,使用 对象名.方法名() 间接调用

4.2 方法参数传递

  • 基本数据类型:数据拷贝
  • 引用类型:地址的引用
    • 如果传递的是引用类型,方法内部对于该引用的修改会影响到出方法后引用的值
  • 数组类型:地址的引用

5. 包(package)

5.1 包的概念

为了更好地组织类,Java 提供了包机制,用于区别类名的命名空间。

  • 包 - 解决类的同名问题

5.2 包的命名规范

  • 包名由小写字母组成,不能以圆点开头或结尾
  • 自己设定的包名之前最好加上唯一的前缀,通常使用组织倒置的网络域名。如:package net.javagroup.mypackage ;
  • 自己设定的包名部分依不同机构各自内部的规范不同而不同。如:package net.javagroup.research.powerproject ;

5.3 包的导入

为了能够使用某一个包的成员,我们需要在 Java 程序中明确导入该包。使用 “import” 语句可完成此功能。

在 java 源文件中 import 语句应位于 package 语句之后,所有类的定义之前,可以没有,也可以有多条,其语法格式为:

import package1[.package2…].(classname|*);

如果在一个包中,一个类想要使用本包中的另一个类,那么该包名可以省略。

5.4 JavaDoc 的生成

两种生成方式:

  • 通过命令行使用 javadoc 生成 Javadoc 文档
  • 通过 IDE 自动生成

认真、沉着做事,每天进步一小点!!!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值