- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第9讲面向对象选编
第九讲
java面向对象编程的四大特征:抽象、封装、继承、多态
1、类、对象——抽象
作业P237编程题1(参见Exercise8_1)
r1
width:4
height:40
r2
width:3.5
height:35.9
成员方法
属性(成员变量)
构造方法
类
2、成员访问修饰符(public、protected 、default、private)——封装
公开级别:用public修饰,对外公开。
受保护级别:用protected修饰,对子类和同一个包中的类公开。
默认级别:没有修饰符号,向同一个包的类公开。
私有级别:用private修饰,只有类本身可以访问,不对外公开,可通过方法授权访问。
4种访问级别的访问范围访问级别访问控制修饰符同类同包子类不同包公 开Public√√√√受保护Protected√√√╳默 认没有修饰符√√╳╳私 有private√╳╳╳3、构造方法
构造方法名和类名相同。
构造方法没有返回值。
主要作用是完成对新对象的初始化。
在创建新对象时,系统自动的调用该类的构造方法。
一个类可以有多个构造方法。
每个类都有一个默认的构造方法。
4、静态成员修饰符static
加上static的成员变量称为“类变量”或“静态变量”,否则称为实例变量。可以通过 [类名.类变量名] 直接访问。
加上static的成员方法称为“类方法”或“静态方法”,否则称为实例方法。可以通过 [类名.类方法名] 直接访问。
static静态的方法可以访问static静态变量,不能访问非静态变量(类变量)
非静态方法可以访问非静态变量(类变量)同时也可以访问static静态变量。
(请问System.out是静态成员吗?查看API文档)
5、this关键字
指当前对象。
this不能在类定义的外部使用,只能在类定义的方法中使用。
this是属于一个对象,不属于类的。
6、package(包)
区分相同名字的类。
当类很多时,可以很好的管理类。
控制访问范围。
小写字母命名,放在文件开头处。
常见包
java.lang.* 包 自动引入 java.util.* 工具包
java.net.* 包 网络开发包 java.awt.* 包 窗口工具包
要使用某包中的类,先引入包(也可以不引入,但每??用类时要写完整所在路径)。
比如:import java.awt.*;
7、继承
当某些类出现相同“属性”和“方法”时,为了提高开发效率,可以通过“继承”来实现代码复用。在父类中定义过的某些“属性”和“方法”,所有的子类不需要重新定义这些“属性”和“方法”,只需要通过extends语句来声明继承父类.
语法: class 子类 extends 父类
这样,子类就会自动拥有父类定义的某些属性和方法。
例如:(参见Project1)
注意:
父类的(public、protected、默认)修饰的“属性”和“方法”可以被子类继承。
父类的private修饰符的“属性”和“方法”不能被子类继承。
子类最多只能继承一个父类(指直接继承)。
java所有类都是Object类的子类 (所有的子类都可以逐级继承,例:爷-父-子-孙)。
JDK6中有202个包3777个类、接口、异常、枚举、注释和错误。
在做开发的时候,强烈建议大家多查jdk帮助文档
8、super()方法
注意:
子类的构造过程中必须调用父类的构造方法。
子类可在自己的构造方法中使用super()来调用父类的构造方法。
使用this来调用本类的另外的构造方法。
如果调用super必须写在子类构造方法的第一行。
如果子类的构造方法中没有显示的调用父类的构造方法,则系统默认的调用父类的无参的构造方法。
如果子类的构造方法中既没有显示调用父类的构造方法,而父类中又没有无参的构造方法,则编译出错。
9、方法重写(覆盖)(override)——多态
当子类出现与父类“返回类型、方法名、参数类型、参数个数”完全相同的方法时,就称子类中的这个方法重写了父类中的方法。
注意:
子类的方法的返回类型,参数,方法名称,要和父类的返回类型,参数,方法名称完全一样,否则编译出错。
子类方法不能缩小父类方法的访问权限。
10、方法重载(overload)——多态
方法具有同样的名称,但是参数列表不相同。在调用时到底调用的哪个方法,取决于调用者给出的参数。
例如:(参见程序:Test2)
class Max{
public int getMax(int i,int j){
if(ij){
return i;
}else{
return j;
}
}
public
文档评论(0)