第五章类、接口、包 ■关于对象与类,类变量、类方法、实例 变量、实例方法,我们已在第4章中作了 概念性的介绍。现在我们要用程序实例 进一步探讨对象向导程序设计的精神, 并介绍其他重要概念。 ■我们要先从Java的基本组件—类开始, 较深入地剖析它的构成,然后详细讲解 接口与包
第五章 类、接口、包 ◼ 关于对象与类,类变量、类方法、实例 变量、实例方法,我们已在第4章中作了 概念性的介绍。现在我们要用程序实例 进一步探讨对象向导程序设计的精神, 并介绍其他重要概念。 ◼ 我们要先从Java的基本组件——类开始, 较深入地剖析它的构成,然后详细讲解 接口与包
类组成组件 类是Java程序最小的基本单位。Java编译器无法处理比类更小的 程序代码。当我们说要着手开始写Java程序,也就是要开始建立 个类( class)。这些类有可能是顶层的抽象( abstract)类,也 有可能是直接继承某一个类的类。若是要写一个较大型的方案 ( project)时,便需要先规划好类上下层级关系,以及各类的存 取控制特性。 所以,我们在这里要来看一个类的组成及其运作规则。组成 个类的组件如下 import包 类修饰符] class xxxclass extends超类]〔 implements接口〕 类字段或称类变量 ∥例字段或称实例变量 /静态初始者 /类方法 ∥实例方法
类组成组件 类是Java程序最小的基本单位。Java编译器无法处理比类更小的 程序代码。当我们说要着手开始写Java程序,也就是要开始建立 一个类(class)。这些类有可能是顶层的抽象(abstract)类,也 有可能是直接继承某一个类的类。若是要写一个较大型的方案 (project)时,便需要先规划好类上下层级关系,以及各类的存 取控制特性。 所以,我们在这里要来看一个类的组成及其运作规则。组成一 个类的组件如下: [import包 ] [类修饰符] class xxxclass [extends超类]〔implements 接口〕 { //类字段或称 类变量 //实例字段或称 实例变量 //静态初始者 //类方法 //实例方法 }
创建类的实例对象new new操作符返回一个引用,而不是指针,这意味着可以把结 果赋给一个对象变量,而不是一个地址表达式。 Myclass obj=new Myclasso 在jaa中,经常需要使用new操作符来为对象分配实际内存空间,当定义 个对象变量时,仅仅是引用了一个对象,该变量在能够被使用前必须 与内存中的一个实际对象(利用new操作符分配的)相关联。 与C艹不同,java没有与new操作符匹配的 Delete操作符,也不必在源代 码中显示地释放内存空间,java解释器利用垃圾收集进程来处理对象的 撤消和内存管理。 new操作符可以用于创建一个或多个对象 Myclass obj[l-=new Myclass [10] 注意:当定义基本数据类型变量( (int, short, long, float, double, boolean/ FHchar) 或者字符串变量时,不必用new操作符,基本数据类型数据在数据存储 区中分配了真实的内存空间, String类型的对象可以用加引号字符串初 始化inta.b,c=200 String name="I love china
创建类的实例对象——new new操作符返回一个引用,而不是指针,这意味着可以把结 果赋给一个对象变量,而不是一个地址表达式。 Myclass obj=new Myclass(); 在java中,经常需要使用new操作符来为对象分配实际内存空间,当定义 一个对象变量时,仅仅是引用了一个对象,该变量在能够被使用前必须 与内存中的一个实际对象(利用new操作符分配的)相关联。 与C++不同,java没有与new操作符匹配的delete操作符,也不必在源代 码中显示地释放内存空间,java解释器利用垃圾收集进程来处理对象的 撤消和内存管理。 new操作符可以用于创建一个或多个对象 Myclass obj[]=new Myclass [10]; 注意:当定义基本数据类型变量(int,short,long,float,double,boolean和char) 或者字符串变量时,不必用new操作符,基本数据类型数据在数据存储 区中分配了真实的内存空间,String类型的对象可以用加引号字符串初 始化 int a,b,c=200; String name=“I love china”;
构造函数 构造函数是一种特殊的方法。用于对象由类产生时,对对象内容做一些初值设置(初 始化)。当new个类要产生实例时,便会自动调用该类的构造函数。 构造函数的声明格式 <修饰符>类名(<参数行>)( throws<异常种类>〕 <构造函数主体> 以前面的轿车类为例: public class Sedan extends Car{/构造函数 public Sedan( i tintype=" Bridge Stone185T";∥轮胎型号 engine=15985f/排气量 public static void main( String argsi Sedan sedan=new Sedano
构造函数 构造函数是一种特殊的方法。用于对象由类产生时,对对象内容做一些初值设置(初 始化)。当new一个类要产生实例时,便会自动调用该类的构造函数。 构造函数的声明格式: <修饰符>类名(<参数行>)〔throws<异常种类>〕 { <构造函数主体> } 以前面的轿车类为例: public class Sedan extends Car{//构造函数 … public Sedan() { tiretype="BridgeStone185ST"; //轮胎型号 engine=1598.5f;//排气量 … } public static void main(String args[]){ Sedan sedan=new Sedan(); … } … }
构造函数的调用是在用new运算符创建类对象时由系统自 动完成的,构造函数的参数传递和形实结合过程也是由系 统调用的同时完成的 作用: 1、构造函数保证每一个新建对象都处于正常合理的状态 2、使得初始化工作不仅仅包括成员变量的赋值,还可以 有更复杂 Department(int dno, String dname, int total) if(dno<=0) System. exit(O) Deptno=dno m DeptName=new String(dname ); m Dept Totalemp=total
构造函数的调用是在用new运算符创建类对象时由系统自 动完成的,构造函数的参数传递和形实结合过程也是由系 统调用的同时完成的 作用: 1、构造函数保证每一个新建对象都处于正常合理的状态 2、使得初始化工作不仅仅包括成员变量的赋值,还可以 有更复杂 Department(int dno,String dname,int total) { if(dno<=0) System.exit(0); m_DeptNo=dno; m_DeptName=new String(dname); m_DeptTotalEmp=total; }