回顾编程基础之Java篇(二)

这篇主要讲讲 java面向对象程序设计的基础。
我们先来看一下程序设计的发展过程:
1. 过程式程序设计:这里不做细讲。
2. 结构化程序设计: 在系统开发前,对程序系统进行整体规划,描述出系统的功能,并进行模块划分、功能分配、数据通信、异常处理。
好处: 比过程式程序设计要好
不足: 程序系统知识为了现有的功能实现,没有考虑将来
发生变化之后的应对。违背了软件工程的职责均衡原则
3. 面向对象程序设计: 力求使得程序中的代码与现实世界中的事物完全一致,程序系统不光满足现有的业务功能,而且要满足将来的业务变化。

面向对象程序设计最重要的两个因素就是类和对象。

类是对一些具有部分相同特征及属性的事物的抽象,取其共性,它只是一种概念,并不是一个现实存在的实体。

而对象则相当于对某种类的具体实现,类是对象的模板, 对象是类的具体存在,由类构造对象的过程称为实例化。

根据类产生或者构造出对象之后,类中描述的功能就变成了对象的功能。

一个类可以产生无数个对象,对象之间相互不存在关联。

类的定义方法如下:
语法: 修饰符 class 类名{
[属性定义]
[方法定义]
}

类中方法的定义如下:
语法:修饰符 返回值数据类型 方法名(形参){
0 ~ n行代码
}

接下来,就是对象的构造。
对象的构造通过java虚拟机调用类中的构造函数来完成。

构造函数:
作用: 构造对象时对对象的属性进行初始化, 构造对象时被jvm自动调用
语法:
1. 方法名与类同名
2. 没有返回值类型
3. 定义一个类时,系统默认会提供一个无参的构造函数, 当用户自定义了有参的构造函数时,系统不再提供无参的构造函数。

对象的构造与初始化
.new 构造函数(…)
①根据构造函数找到构造函数所属的类并理解构造该类的对象。
②调用该对象的构造函数对属性进行初始化
③new 构造函数():每次都会产生一个新的对象
例如:

 Student student = new Student();

① Student student; 定义一个Student类型的变量,此时该变量不占据内存空间。
② new Student(): 构造一个Student类型的对象并对该对象进行初始化。
③ 将对象在内存中的地址值赋给student变量,此时该变量占据内存。

当通过new 运算符与构造函数构造一个对象之后, jvm会将对象存放在堆地址中,为了要使用堆中的这个对象,jvm必须在栈中生成一个对象所属的类的类型的变量指向堆中的这个对象, 这个变量保存的是堆中对象的地址值, 所以该变量称为引用变量(例如上述的Student student就是定义了一个Student类型的引用变量), 以后就可以通过该引用变量操作对象的各种成员。

这里来讲一下java的内存分配和管理
java的内存分配方式有两种:以堆的方式和以栈的方式
栈:存放基本数据类型数据以及引用数据类型的引用变量
堆:存放引用数据类型的对象

内存的分配时机:
1. 属性:在构造对象时进行内存分配
2. 方法:在被调用时分配内存

内存的释放:
1. 对于栈中的数据,方法运行完毕之后自动从内存中清除。
2. 对于堆中的数据,方法运行完毕之后只是变成了垃圾,还占据内存,由jvm的垃圾收集器在某个不确定的时候自动进行回收,不由程序员控制管理。

对象的使用原则:
1. 对象只有在使用时才构造。
2. 对象使用完毕之后要立即进行释放。
3. 释放方式:将指向堆中对象的引用变量置空,将指向堆中对象的引用变量指向其他对象。

最后来讲一下java的源文件结构
1. package: 管理类并避免类的重名
它的使用有以下几点注意:
(1). 如果一个类被包管理,那么该类所属的源文件必需存放在与包名一致的目录结构下。
(2). 包名必需在位于程序代码的第一行,包名全部用小写,相互之间用.号隔开。
(3). 被包管理的类的调用必需通过包名才可以, 顶级包名的上一级目录是虚拟机可以默认查找到被包管理的类的目录
2. import: 在本类中导入被调用的其他不同包下的类
导入顺序为:
Java基础包
Java扩展包
第三方提供的组件包
本工程其他的包

补充:
java程序的中断控制方式
1. return
return 值:将方法的运算结果返回给调用者并退出当前执行的代码块。
return:告诉虚拟机运行到此处时退出当前执行的代码块
2. break、continue:在循环条件满足的情况下提前终止循环语句的执行
3. System.exit(): 系统退出

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值