面向对象编程(成员变量成员方法构造方法重载方法)_第1页
面向对象编程(成员变量成员方法构造方法重载方法)_第2页
面向对象编程(成员变量成员方法构造方法重载方法)_第3页
面向对象编程(成员变量成员方法构造方法重载方法)_第4页
面向对象编程(成员变量成员方法构造方法重载方法)_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、面向对象编程(成员变量、成员方法、构造方法、重载方法)本章学习指引:成员变量(成员方法)构造方法方法重载 Java中的成员变量实例变量(对象变量)类变量(静态变量)一、成员变量成员变量存放位置:在类的内部并位于方法体之外作用域:整个类class VariableOfFamily int i; boolean flag; int aa() float j; return 5; 如何区分成员变量的两种形式 -通过static关键字来区分 static 类型 变量名class A int i; static float j;注意:成员方法类似于成员变量的两种形式区分static返回值类型 方法名(参

2、数表)语句体返回值类型:有参返回(int、float、double等等)无参返回(void)实例变量与类变量的访问举例class VerifyConstant int i; static float j; public static void main(Stringargs) /System.out.print(i); VerifyConstant vc=new VerifyConstant(); System.out.println(vc.i+n+vc.j); System.out.println(j=+j); System.out.println(j=+ VerifyConstant .j

3、); 结论实例变量是属于对象的,在类方法中,必须通过对象访问。类变量是属于类的。在同一个类中可以直接访问,在其他类中,可以通过对象访问或通过类名访问。注意:成员方法的访问类似于成员变量在实例方法中可以直接访问实例变量class VerifyConstant int i; static float j; void aa() i=i+1; j=j+1; static void bb() VerifyConstant vc=new VerifyConstant(); vc.aa(); vc.i=vc.i+1; j=j+1; System.out.print(vc.i); public static

4、void main(Stringargs) bb(); 例:读出下列程序的运行结果class Company static String name,city;public class OurCompany public static void main(Stringargs) Company c1=new Company(); =交通公司; c1.city=上海; Company c2=new Company(); =电力公司; c2.city=北京; System.out.println(+:+c1.city); 注意:类变量是属于类的,属于类中所有

5、对象,类变量被保存在该类内存区的公共存储单元中。类变量不会因为对象的存在而存在。实例变量是属于对象的,与具体对象相关联,只有对象被创建了,该对象访问的变量才会存在于存储单元中。类变量的值会随着最后一个对象的改变而改变,而对象变量的值的改变只与具体的对象有关 问题:指出下列类中成员变量和成员方法的具体形式class Judge int i; static float j; final static double k=26.7789; void aa() System.out.print(“Welcome!”); static int bb(int p) return 6; public stat

6、ic void main(Stringargs) 课堂练习编写一个Java Application程序,该程序能计算出清华大学出版社某本书自从发行以来的销售总额。要求输出的结果如下:出版社:清华大学出版社书名:Java程序设计单价:23.5元发行日期:2005年7月已售数量:3000本销售总额: 元 出版社:清华大学出版社书名:.NET程序设计单价:21.6元发行日期:2007年12月已售数量:3500本销售总额: 元 class Book static String bookconcern =清华大学出版社; String bookname,publishtime; float bookpr

7、ice; long booknumber; double saleAmount() return booknumber*bookprice; class MyBook public static void main(Stringargs) Book book1=new Book (); book1.bookname=Java程序设计; book1.publishtime=2005年7月;book1.bookprice=23.5f;book1.booknumber=3000L;System.out.println(出版社:+Book.bookconcern+n书名:+book1.bookname

8、+n单价:+book1.bookprice+元n发行日期:+book1.publishtime+n已售数量:+book1.booknumber+本n销售总额:+book1.saleAmount(); /请试着从命令行输入bookprice、bookname等的值二、构造方法1.概念及特点又称构造函数、构造器构造函数是类的一种特殊方法,它的特殊性主要体现在如下的几个方面:(1)构造函数的方法名与类名相同。(2)构造函数没有返回类型。(3)构造函数的主要作用是完成对类的对象的初始化工作。(4)构造函数不能由编程人员显式地直接调用。(5)在创建一个类的新对象的同时,系统会自动调用该类的构造函数为新对

9、象初始化。例:为Book类创建构造函数(要求通过构造函数完成书名和书价的初始化)class Book static String bookconcern =清华大学出版社; String bookname,publishtime; float bookprice; long booknumber; double saleAmount() return booknumber*bookprice; Book(String bn,float bp) bookname=bn; bookprice=bp;如何调用构造函数?class MyBook public static void main(Stri

10、ngargs) Book book1=new Book (Java程序设计, 23.5f); book1.publishtime=2005年7月; book1.booknumber=3000L;System.out.println(出版社:+Book.bookconcern+n书名:+book1.bookname+n单价:+book1.bookprice+元n发行日期:+book1.publishtime+n已售数量:+book1.booknumber+本n销售总额:+book1.saleAmount(); 这条语句自动调用Book类中带两个参数的构造函数2.构造函方法的特点(1)构造函数和类

11、具有相同的名字。(2)一个类可以有多个构造函数。(3)构造函数可以有0个、1个或多个参数。(4)构造函数没有返回值。(5)构造函数总是和new运算符一起被调用。3.构造方法的作用(1)对象初始化(2)引入更多的灵活度(变量赋值或更复杂的操作)(3)Java中可以不定义构造函数- Java中可以不定义构造函数,此时系统会自动为该系统生成一个默认的构造函数。这个构造函数的名字与类名相同,它没有任何形式参数,也不完成任何操作。课堂练习一:请为Square类创建一个构造函数,该函数能够在对象创建时,自动完成边长的初始化工作。并设计一个Java Application程序,能输出边长为5.5的正方形的周

12、长。class Square double length; double area() return length*length; double circum() return 4*length; 程序如下:class Square double length; Square(double len) length=len; double area() return length*length; double circum() return 4*length; 或:Square(double length)this.length=length;class ComputeArea public s

13、tatic void main(Stringargs) Square s=new Square(5.5); System.out.print(“周长为”+s.circum(); 课堂练习二:完成第二次实验报告三、方法重载1、概念、概念类对自身已有的同名方法的重新定义,一般类对自身已有的同名方法的重新定义,一般同名方法通过形参来区分同名方法通过形参来区分重载方法必须满足以下条件:重载方法必须满足以下条件: -方法名相同方法名相同 -方法的参数类型、个数、顺序至少有一项不方法的参数类型、个数、顺序至少有一项不同同 -方法的返回类型可以不相同方法的返回类型可以不相同 -方法的修饰符可以不相同方法的修饰符可以不相同例:以下sum方法为重载的方法class Calculate int sum(int i,int j) return i+j; float sum(float i,float j,float k) return i+j+k; double sum(double i,double j,double k,double t) return i+j+k+t; 2、构造函数的重载构造函数的重载重载

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论