`
2008winstar
  • 浏览: 60841 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
  • chenke: 写的很好,也可以看看那这个文章,我感觉学的还可以。http:/ ...
    HTML

Java基础知识(二)

    博客分类:
  • Java
 
阅读更多

   接上一篇博客内容《Java基础知识(一)》

 

   在Java中允许把许多类的声明放在一个Java文件中,但是这些类只能有一个类被声明为public,而且这个类名必须和Java文件名相同。

   private:只有本类可见;

   protected:本类,子类,同一包的类可见;

   默认(无修饰符):本类、同一包的类可见;

  public:对任何类可见。

 

   方法重载(overloading),在Java中支持有两个或多个同名的方法,但是它们的参数个数和类型必须有差别。重载是Java实现多态的方式之一。

 

   静态变量,跟对象没有关系,而与类相关联,访问方法:“类名.变量名”

   静态方法,访问方法:“类名.方法名”

   使用静态变量和静态方法的时候需要注意以下几点:

   (1)静态方法不能直接访问非静态变量;

   (2)非静态方法可以直接访问静态变量。

   静态变量、静态常量的初始化是在调用构造函数之前完成的。

 

  this关键字:

   (1)在构造函数中调用其他的构造函数;

   (2)在方法中获得调用该方法的对象。

 

   调用父类的构造函数的语句要放在所有方法的第一个语句中。

 

   面向对象特性:继承、多态

 

   多态是指同一个方法根据上下文使用不同的定义的能力。

 

   方法覆盖:子类的方法覆盖父类的方法

 

   方法覆盖于方法重载都可被看做是多态。

 

   super关键字:

   (1)在子类构造函数中调用父类构造函数;

   (2)在子类中调用父类的方法。

 

    在Java中,对象是多态的,定义一个Animal对象,它既可以存放Animal对象,也可以存放Animal的子类Tiger、Fish的对象。

Animal[] animal = new Animal[3]
animal[0] = new Animal();
animal[1] = new Tiger();
animal[2] = new Fish();
animal[1].breath();
animal[2].breath();

    存放在Animal数组中的Tiger对象和Fish对象在执行breath方法时会自动地调用原来对象的方法而不是Animal的breath方法,这就是动态绑定。通过数组元素访问方法的时候只能访问在Animal中定义的方法,对于Tiger类和Fish中定义的方法却不能调用,当需要访问这些方法时需要用到类型转换。

 

    final关键字:

   把类定义为不能继承的,把方法定义为不能被子类继承的。

   实例变量也可以被定义为final,被定义为final的变量不能被修改。被声明为final的类的方法自动地被声明为final,但是它的实例变量并不是final。

 

   抽象类,指在类中定义方法,但是并不去实现它,而在它的子类中去具体的实现。定义的抽象方法不过是一个方法占位符。继承抽象类的子类必须实现父类的抽象方法,除非子类也被定义成一个抽象类。

修饰符 abstract 类名 {
    //类体
}

 

   在抽象类中的方法不一定是抽象方法,但是含有抽象方法的类必须被定义成抽象类。

   抽象类不可以实例化,但是可以创建抽象类的对象变量,只是这个变量只能用来指向它的非抽象子类对象。通过这种方式创建的对象不能直接调用子类自定义的方法。调用这些自定义方法的时候仍需进行类型转换。

 

   接口

   (1)接口的修饰符只能为默认的(无修饰符)或者public。当修饰符为默认时,接口是包可见的,在接口所在的包之外的类不能使用该接口。修饰符为public时,任何类都可以使用该接口;

   (2)接口内可以声明变量,接口内的变量被自动设置为共有的(public)、静态的(static)、最终的(final)字段;

   如在接口中声明一个变量:

int i;

   它的实际效果:

public static final i;

 

   (3)接口定义的方法都为抽象,它们被自动地设置为public。

 

   实现接口的类必须要实现接口中定义的方法。

   (1)如果实现接口的类不是抽象类,它必须实现接口中定义的所有方法。如果该类为抽象类,在它的子类甚至子类的子类中要实现接口中定义的方法;

   (2)实现接口的方法时必须使用相同的方法名和参数列表。

   (3)实现接口类中的方法必须被声明为public,因为在接口中的方法都被定义为public,根据继承的原则,访问范围只能放大,不能缩小。

 

   接口之间也可以有继承关系,继承接口的接口拥有它的父接口的方法,它还可以定义自己的方法,实现这个子接口的类,要实现所有这些方法。

   接口也不可以实例化,但是可以声明接口类型的变量,它的值必须是实现了该接口的类的对象。

 

   抽象类与接口的区别:

   (1)一个类可以实现多个接口,但是只能继承一个抽象类;

   (2)抽象类可以有非抽象方法,即可以有已经实现的方法,继承它的子类可以对方法进行覆盖;而接口中定义的方法必须全部为抽象方法;

   (3)在抽象类中定义的方法,它们的修饰符可以使public、protected、private,也可以是默认值;但是在接口中定义的方法全是public的;

   (4)抽象类可以有构造函数,接口不能。两者都不能实例化,但是都能通过它们来存放子类对象或是实现类的对象。可以说它们都可以实现多态。

 

   内部类,指定义在其它类内部的类,内部类所在的类称为宿主类。内部类只能被它的宿主类使用;内部类可以访问它的宿主类的变量。

   内部类分为两大类:

   (1)静态内部类,用static修饰的内部类,不能直接访问其宿主类的成员,而必须通过对象来访问。

   (2)非静态内部类,可以调用其宿主类的所有变量和方法,并且像宿主类的其他非静态成员那样直接引用它们。

 

   局部内部类

   内部类不仅可以在类中定义,也可以在方法中定义。

   变量若定义在类中,叫成员变量;

   变量若定义在方法中,叫局部变量;

   内部类定义在方法中时,叫局部内部类。

 

   匿名内部类,指没有类名的内部类。

 

 

   对象克隆  super.clone()

   

    

  

分享到:
评论

相关推荐

    java基础知识 ppt

    java基础知识,帮助初学者更快更好地掌握java。ppt内容具体易懂,希望对刚接触java的初学者有所帮助。

    Java基础知识点总结.docx

    Java是一种广泛使用的面向对象的编程语言,其基础知识涵盖了多个方面,包括语法、面向对象特性、异常处理、多线程...以上只是Java基础知识的一个概述,每个话题都值得深入探讨和实践,不断学习和总结是提升技能的关键。

    java基础知识大全(必看经典)

    Java 基础知识大全 本资源摘要信息是 Java 基础知识大全的总结,涵盖了 Java 语言的基本概念、特点、历史发展等方面的知识点。以下是本资源摘要信息的详细内容: 一、 Java 语言的特点 * 面向对象:Java 语言是...

    Java基础知识学习:包括JVM虚拟机、对象模型等Java基础知识代码案例.zip

    Java基础知识学习:包括JVM虚拟机、对象模型等Java基础知识代码案例Java基础知识学习:包括JVM虚拟机、对象模型等Java基础知识代码案例Java基础知识学习:包括JVM虚拟机、对象模型等Java基础知识代码案例Java基础...

    Java基础知识点和答案

    Java基础知识点和答案Java基础知识点和答案Java基础知识点和答案Java基础知识点和答案Java基础知识点和答案Java基础知识点和答案Java基础知识点和答案Java基础知识点和答案Java基础知识点和答案Java基础知识点和答案...

    JAVA基础知识总结.

    JAVA基础知识总结 JAVA基础知识总结 JAVA基础知识总结

    java基础知识的培训ppt

    java基础知识的培训ppt,对于java初学者来说可以有一些作用。

    Java基础知识总结.pdf

    ### Java基础知识精炼 #### 一、Java概述与发展历程 Java是一种高级编程语言,由Sun Microsystems公司的James Gosling等人于1991年开始研发,原名为Oak,旨在控制嵌入式设备如有线电视交换盒和PDA。1994年正式更名...

    java基础知识应用

    在“java基础知识应用”这个主题中,我们主要探讨的是Java语言的基础概念及其在实际开发中的应用,特别是与数据库交互的部分。 一、Java语言基础 1. 类与对象:Java基于面向对象的编程理念,所有程序都是由类和对象...

    java基础知识总结

    java基础知识

    java 基础知识总结

    自己在网上找的相对好一点的java复习资料,留个纪念 。详细讲述了Java课程的知识点

    Java基础知识梳理

    "Java基础知识梳理" Java 是一种广泛使用的编程语言,适合初学者对 Java 相关知识的总结。下面是 Java 基础知识的梳理: 一、Java 开发环境 * JDK(Java Development Kit):可以开发编译与运行 JAVA 程序的工具...

    java基础知识点总结及面试问题

    java基础知识点总结及面试问题java基础知识点总结及面试问题java基础知识点总结及面试java基础知识点总结及面试问题

    JAVA基础知识总结

    Java基础知识总结涵盖了Java程序设计语言的核心概念和常用知识点。在详细学习和总结这些知识点之前,首先需要对Java有一个整体的认识。Java是一种面向对象的编程语言,它具有跨平台的特性,即“一次编写,到处运行”...

    java基础知识点总结

    java基础知识点,面试宝典,最适合你的java面试知识点,所学java知识点总结

    Java基础知识.pdf

    Java基础知识.pdf

    Java基础知识总结

    Java基础知识总结 一些的基础知识 适合初学者和回顾以前的知识

Global site tag (gtag.js) - Google Analytics