您现在的位置: 中国男护士网 >> 考试频道 >> 计算机等级 >> 二级辅导 >> JAVA >> 辅导 >> 正文    
  二级Java考试辅导教程:3.2Java语言的面向对象特性[3] 【注册男护士专用博客】          

二级Java考试辅导教程:3.2Java语言的面向对象特性[3]

www.nanhushi.com     佚名   不详 

      运行结果

  c:\> java Dispatch
  Inside B's callme() method “

  方法重写时应遵循的原则:
  1)改写后的方法不能比被重写的方法有更严格的访问权限(可以相同)。
  2)改写后的方法不能比重写的方法产生更多的例外。

  4. 其它

  final 关键字
  final 关键字可以修饰类、类的成员变量和成员方法,但final 的作用不同。
  
  1) final 修饰成员变量:
  final修饰变量,则成为常量,例如
  final type variableName;
  修饰成员变量时,定义时同时给出初始值,而修饰局部变量时不做要求。

  2) final 修饰成员方法:
  final修饰方法,则该方法不能被子类重写
  final returnType methodName(paramList){
  …
  }

  3) final 类:
  final修饰类,则类不能被继承
  final class finalClassName{
  …
  }来源:www.examda.com

  实例成员和类成员
  用static 关键字可以声明类变量和类方法,其格式如下:
  static type classVar;
  static returnType classMethod({paramlist}) {
  …
  }
 
  如果在声明时不用static 关键字修饰,则声明为实例变量和实例方法。
  1) 实例变量和类变量
  每个对象的实例变量都分配内存,通过该对象来访问这些实例变量,不同的实例变量是不同的。
  类变量仅在生成第一个对象时分配内存,所有实例对象共享同一个类变量,每个实例对象对类变量的改变都会影响到其它的实例对象。类变量可通过类名直接访问,无需先生成一个实例对象,也可以通过实例对象访问类变量。

  2) 实例方法和类方法
  实例方法可以对当前对象的实例变量进行操作,也可以对类变量进行操作,实例方法由实例对象调用。
  但类方法不能访问实例变量,只能访问类变量。类方法可以由类名直接调用,也可由实例对象进行调用。类方法中不能使用this或super关键字。

  例3-7 是关于实例成员和类成员的例子。

  【例3-7】
  class Member {
    static int classVar;
    int instanceVar;
    static void setClassVar(int i) {
     classVar=i;
     // instanceVar=i; // 类方法不能访问实例变量
    }
    static int getClassVar()
     { return classVar; }
    void setInstanceVar(int i)
     { classVar=i; //实例方法不但可以访问类变量,也可以实例变量
     instanceVar=i; }
   int getInstanceVar( )
     { return instanceVar; }
    }
    public class MemberTest{
     public static void main(String args[]) {
         Member m1=new member();
         Member m2=new member();
         m1.setClassVar(1);
         m2.setClassVar(2);
         System.out.println("m1.classVar="+m1.getClassVar()+"
                   m2.ClassVar="+m2.getClassVar());
         m1.setInstanceVar(11);
         m2.setInstanceVar(22);
         System.out.println("m1.InstanceVar="+m1.getInstanceVar
              ()+" m2.InstanceVar="+m2.getInstanceVar());
     }
    }

    运行结果

  c:\> java MemberTest
  m1.classVar=2 m2.classVar=2
  m1.InstanceVar=11 m2.InstanceVar=22

  类java.lang.Object
  类java.lang.Object处于java开发环境的类层次的根部,其它所有的类都是直接或间接地继承了此类。该类定义了一些最基本的状态和行为。下面,我们介绍一些常用的方法。

  equals() :比较两个对象(引用)是否相同。
  getClass():返回对象运行时所对应的类的表示,从而可得到相应的信息。
  toString():用来返回对象的字符串表示。
  finalize():用于在垃圾收集前清除对象。
  notify(),notifyAll(),wait():用于多线程处理中的同步。

  2. 匿名类的定义和使用:

  匿名类是一种特殊的内部类,它是在一个表达式内部包含一个完整的类定义。通过对例6-7中go()部分语句的修改,我们可以看到匿名类的使用情况。

  public void go() {
         f=new Frame("Two listeners example");
         f.add("North",new Label("Click and drag the mouse"));
         tf=new TextField(30);
         f.add("South",tf);
         f.addMouseMotionListener(new MouseMotionHandler(){
         /*定义了一个匿名类,类名没有显式地给出,只是该类是
          MouseMotionHandler类的子类*/
           public void mouseDragged(MouseEvent e){
             String s="Mouse dragging:X="+e.getX()+"Y
             ="+e.getY();
             tf.setText(s);
           }
         });
         f.addMouseListener(new MouseEventHandler());

         f.setSize(300,300);
         f.setVisible(true);
         }来源:www.examda.com

  3. 内部类的优缺点:

  优点:节省编译后产生的字节码文件的大小
  缺点:使程序结构不清楚

  【本讲小结】

  类是Java语言面向对象编程的基本元素,它定义了一个对象的结构和功能。 Java类中包含成员变量和成员方法。成员变量有两种,用static 关键字修饰的变量为类变量,无static 修饰的变量为实例变量。相应地,成员方法也有两种,用static 修饰的为类方法,无static修饰的为实例方法。实例方法不仅可以对当前对象的实例变量进行操作,也可以对类变量进行操作;但类方法只能访问类变量。实例变量和实例方法必须由实例对象来调用,而类变量和类方法不仅可由实例对象来调用,还可由类名直接调用。Java通过在类定义的大括号里声明变量来把数据封装在一个类里,这里的变量称为成员变量。为了解决类名可能相同的问题,java 中提供包来管理类名空间。

  封装性、继承性和多态性是java语言中面向对象的三个特性。接口是java 语言中特有的数据类型,由于接口的存在,解决了java语言不支持多重继承的问题。内部类是指在一个类的内部嵌套定义的类。

 

文章录入:杜斌    责任编辑:杜斌 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
     

    联 系 信 息
    QQ:88236621
    电话:15853773350
    E-Mail:malenurse@163.com
    免费发布招聘信息
    做中国最专业男护士门户网站
    最 新 热 门
    最 新 推 荐
    相 关 文 章
    没有相关文章
    专 题 栏 目

      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)                            【进男护士社区逛逛】
    姓 名:
    * 游客填写  ·注册用户 ·忘记密码
    主 页:

    评 分:
    1分 2分 3分 4分 5分
    评论内容:
  • 请遵守《互联网电子公告服务管理规定》及中华人民共和国其他各项有关法律法规。
  • 严禁发表危害国家安全、损害国家利益、破坏民族团结、破坏国家宗教政策、破坏社会稳定、侮辱、诽谤、教唆、淫秽等内容的评论 。
  • 用户需对自己在使用本站服务过程中的行为承担法律责任(直接或间接导致的)。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表网友个人观点,与本网站立场无关。