Java程序设计——面向对象编程部分
来源:互联网 发布:山大网络教育平台 编辑:程序博客网 时间:2024/05/12 05:43
Java程序设计——面向对象编程部分
作者:zccst
Java编程,淋漓尽致地体现了面向对象编程的精华。 ——zccst
前面的话
曾经有一段时间,很排斥Java。认为做Java的人水平和能力等都比较低,那绝对是一种鄙夷的态度。但是,在公司项目的迫压下,我开始了Java之旅。由于具备良好的C++基础,所以差不多几天时间就上手了。是在后来才发现,Java远非我想象的那么简单。我闯进了一片新的天空,很舒服。也是在这几天里,我深刻地体会到“机器是最好的老师”这句话的涵义(大学时候没做到)。终于可以力所能及,甚至游刃有余,我想,这大概是我从新手或菜鸟晋级的最好方式吧!O(∩_∩)O哈哈~
《Java语言程序设计》学习框架
Java概述 Java由来、演化、分流;开发工具、平台搭建;特点、前景
Java结构化编程 关键字、标识符、基本数据类型、运算符、表达式、流程控制;数组
Java面向对象编程 类和对象;封装性、继承性、多态性;抽象类;最终类;接口
Java常用类库 lang、applet、awt、io、net、util
Java异常处理
本文重点讲解的就是:Java面向对象编程部分。(已用黑体字)
由于从大三开始接触C++,面向对象的基础知识还算可以,所以本文略去Java中与C++相同的部分。惭愧的是,近几年来没多大进展。
类和对象
类、对象、构造函数(constructor)、垃圾自动回收机制的定义和使用。还有默认初始化。
构造函数,是用来对新创建对象进行初始化的。除与类名同、没有任何返回值外,在语法结构上与一般的方法相同。
构造函数实例化一个类对象格式:类名对象名 = new 构造函数(实际参数)
a, 用new为对象分配空间
b, 执行构造方法为对象进行初始化
Java没有析构,但提供了一个类似的方法:protectedfinalize(); 另外还有方法:“System.gc()”
Java程序由类组成,一个程序至少要包含一个类。Java程序员的任务就是设计出这样的类来解决实际问题。
程序运行时的内存占用
代码区 存放程序的代码部分
数据区 存放程序的全局数据和静态数据
堆区 存放程序动态申请的数据(比如:new)
栈区 存放程序的局部数据和参数
Person p1 = new Person(“Jack”,”Male”,23);
Person p2 = p1;
Person p3 = new Person(“Jack”,”Male”,23);
p1 和p2指向同一个对象;p1 和p3指向不同的对象。
类的静态属性和静态方法
在class中定义的变量分为类变量(静态变量)和实例变量;方法分为类方法(静态方法)和实例方法。都用static修饰。弄清楚的最好办法是实践。
类变量和类方法由该类产生的所有实例共享。调用方式:类名 / 对象名.静态变量(静态方法)
注:static方法中不能处理非static的域或方法。
面向对象的三大特征:封装性、继承性、多态性。
public公共类:封装。控制用户对类修改和访问数据的程度。
其对于关系,可以用一个图表清楚的表示:
public公共类:继承和派生
extends一套规则 this 和 super。
/*super.name = name;
super.sex = sex;
super.age = age; */
就这段代码,曾花了两个小时,每次看到,都会想到那天下午。
public公共类:多态——重载和覆盖
1,静态多态性:编译时,重载(overload) 函数同名,参数列表不同
一般函数重载,Java类库中的类也有很多重载的方法,比如println();
构造函数重载 TestPerson2.java
2,动态多态性:运行时,覆盖(override) 子类对父类的方法覆盖
TestPerson1.java
null、this、super三个域。this,super区别见申雪萍课件——this引用与super引用的对比
abstract抽象类:抽象类和抽象方法
抽象类是不能实例化的。只能被继承。
抽象方法是没有方法体的,以“;”介绍。例,abstract public double area();
抽象类至少有一个抽象方法,反过来一个类有抽象方法,则这个类必须声明为抽象类。
最终类和最终方法
final类中的方法可以不声明为final方法,但实际上final类中的方法都是隐式final方法。
final修饰的方法不一定要存在于final类中。
如果一个变量用final修饰,表明它在程序中是不能修改的常量。
用final修饰的方法既不能覆盖,也不能被重载,它是一个最终方法,其定义永远不能改变。
对final对象重新赋值会产生编译错误,但是对final对象中的变量赋值是可以的。
接口(interface):用来实现类间多重继承功能的结构
每一个方法都是抽象的,没有方法体,只有名字和参数表。行为留给实现该接口的类完成。
每一个变量都是静态的常量,都必须赋值。
(所以方法默认是public abstract,所有变量都默认是public static final。)
第一步:用关键字interface定义接口:
[public] [interface] 接口名称 [extends父接口名列表] # 继承的也是接口
{
// 静态常量
[public] [static] [final] 数据类型 变量名 = 常量名;
// 抽象方法
[public] [abstract] [native] 返回值类型 方法名(参数列表);
}
接口可以继承,也可以多重继承,例如:
interface IA{…}
interface IB{…}
interface IC{…}
interface ID{…} extends IA, IB, IC{…}
第二步:用关键字implements实现接口:
[修饰符] class 类名 [extends父类名][implements接口A,接口B,…]
{
类的成员变量和成员方法;
为接口A中的所有方法编写方法体,实现接口A;
为接口B中的所有方法编写方法体,实现接口B;
……
}
例如:
[修饰符] class Aimplements IA{…} # class A要实现接口IA中的所有接口方法。
[修饰符] class B extendsA implements IB, IC{…} # class B 要实现IB, IC中的所有接口方法。
注:如果哪怕只有一个接口方法没有实现,则那个类也要声明称抽象的。
通过接口可以在运行时动态定位类所调用的方法。接口与重载、覆盖一样,是多态性的体现。
接口的好处是把方法描述与方法功能的实现分开考虑,降低了程序的复杂性,使程序设计灵活,便于扩充修改。
- Java程序设计——面向对象编程部分
- Java对象与类——面向对象程序设计概述
- Java面向对象程序设计
- java面向对象程序设计
- Java面向对象程序设计
- 《Java面向对象程序设计》
- java面向对象程序设计
- java面向对象程序设计:对象
- Java复习总结:Java面向对象程序设计 —面向对象(基础篇)
- Java复习总结:Java面向对象程序设计—面向对象(高级篇)
- 《Java面向对象程序设计——图形化方法》译序
- 《Java面向对象程序设计——图形化方法》译序
- java学习——理解面向对象程序设计
- Java SE——深入理解面向对象程序设计
- 用Eclipse + CDT + MinGW做Windows编程第二部分:Windows编程、面向对象程序设计
- 【学习java编程思想】day_1面向对象程序设计的方法
- JAVA面向对象编程——继承
- JAVA面向对象编程——多态
- form 回车自动提交问题
- va_list va_start vsprintf
- 郁闷——局部刷新的12031
- 成为程序员的标准
- Log4j日志记录的相对路径问题与打印HQL
- Java程序设计——面向对象编程部分
- 现代程序员的几个错误观点(一)
- 现代程序员的几个错误观点(二
- Java的隐藏实现
- Ubuntu下 apt-get的用法
- Javascript中最常用的55个经典技巧
- 利用MSXML2_XmlHttp和Adodb_Stream获取网页的源程序
- Java 7的主要变化
- 如何变为一名优秀的测试工程师