从零开始学JAVA程序设计实践经典教程.ppt
文本预览下载声明
验证:加了package mypackage.test;之后编译和运行程序的会出现什么结果? javac TestPerson.java java TestPerson 查看结果:TestPerson.java 设TestPerson.java位于目录e:\java下 具体操作办法一: 1、在命令行状态先到e:\java,然后运行 javac TestPerson.java 2、在目录e:\java下创建mypackage子目录,在mypackage子目录下再创建test子目录,将TestPerson.class和Person.class放在此处 3、回目录e:\java下运行 java mypackage.test.TestPerson 将参数放在调用方法的括号内 传递字面值或变量 按方法声明中的顺序列出参数 查看结果:BoxDemo5.java 查看结果:CallByValue.java PassParam.java 查看结果:PassObject1.java PassObject2.java 特点: 同一个类中 同一名字 参数个数不同 参数类型不同 数据类型排列顺序不同 对比: 未使用方法重载之前: 要打印不同类型的数据,int, float, String 必须定义不同名的多个方法: printInt(int t); printFloat(float f); printString(String s) 使用方法重载之后: 多个方法可以使用相同的方法名,用参数来区分。 printInfo (int t) printInfo (float f) printInfo (String s) 查看结果:OverLoad.java 查看结果:OverLoad2.java 构造器的作用是构造并初始化实例对象。 构造器的特点有: (1)构造器和类具有相同的名字 (2)一个类可以有多个构造器 (3)构造器可以有0个、1个或多个参数 (4)构造器没有返回值和返回类型 (5)构造器不能被显式调用。构造器总是和new运算符一起被调用,在创建一个类的新对象的同时,系统会自动调用该类的构造器为新对象初始化。 注意:1、在构造器里不用return语句返回一个值。 2、构造器没有返回值不等于返回值为void 查看结果:TestPerson.java 查看结果:BoxDemo6.java 缺省构造器 显式创建的构造器 在java的每个类中,至少要有一个构造器 若程序员没有在中类定义构造器,编译器将自动插入一个缺省的构造器。 缺省构造器的代码如下所示: 当用new修饰符来实例化对象时,new将自动调用缺省构造器。 Shirt shirt1= new Shirt() ; 一旦程序员在类中定义了构造器,编译器就不会再插入缺省构造器了! 查看结果:SimpleConstructor.java 养成好习惯: 只要在程序中定义了有参数的构造器,都需要再定义一个无参数的构造器! 如果把之前的Person.java示例中的代码: Person p1=new Person(); p1.shout(); 改写为: new Person().shout(); 这条代码中用new关键字直接创建了一个Person类的实例对象,并调用了它的shout()方法,方法一旦执行完,这个实例对象就变成了垃圾。 匿名对象的使用:如果对一个实例对象只需要进行一次方法的调用,那么就可以使用匿名对象。 在一个类中,初始化的顺序由此变量在类中的定义顺序决定的。 即使变量定义大量遍布于方法定义的中间,那些变量仍然会在调用任何方法之前就被初始化——当然也在构造器之前。 查看结果:Person1.java Test2.java 第八章 面向对象的Java程序 学习目标: 了解包的概念 编写封装特点的代码 掌握static关键字的用法 名字空间主要定义一个名字或者符号的作用范围 明确的名字空间可以保护变量和方法名不会冲突——即所谓的名字冲突。 在Java程序中没有任何类型的全局变量或函数。这有助于把名字冲突减少到最低程度。 Java引入了包(package)的概念来帮助管理名字空间。一个包是一些类的集合。每个包有它自己的名字空间。 一个类的名字是它所在的包内使用的一个唯一的名字。由于方法和变量名是一个类本地管理的,所以名字冲突的可能性被从根本上消除了。 名字空间 格式: package top_pkg_name[.sub_pkg_name]; 说明: 包声明必须位于java源程序的第一条语句。 包的层次之间,父层与子层之间用. 号隔开。
显示全部