接上一篇博客内容《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基础知识,帮助初学者更快更好地掌握java。ppt内容具体易懂,希望对刚接触java的初学者有所帮助。
Java是一种广泛使用的面向对象的编程语言,其基础知识涵盖了多个方面,包括语法、面向对象特性、异常处理、多线程...以上只是Java基础知识的一个概述,每个话题都值得深入探讨和实践,不断学习和总结是提升技能的关键。
Java 基础知识大全 本资源摘要信息是 Java 基础知识大全的总结,涵盖了 Java 语言的基本概念、特点、历史发展等方面的知识点。以下是本资源摘要信息的详细内容: 一、 Java 语言的特点 * 面向对象:Java 语言是...
Java基础知识学习:包括JVM虚拟机、对象模型等Java基础知识代码案例Java基础知识学习:包括JVM虚拟机、对象模型等Java基础知识代码案例Java基础知识学习:包括JVM虚拟机、对象模型等Java基础知识代码案例Java基础...
Java基础知识点和答案Java基础知识点和答案Java基础知识点和答案Java基础知识点和答案Java基础知识点和答案Java基础知识点和答案Java基础知识点和答案Java基础知识点和答案Java基础知识点和答案Java基础知识点和答案...
JAVA基础知识总结 JAVA基础知识总结 JAVA基础知识总结
java基础知识的培训ppt,对于java初学者来说可以有一些作用。
### Java基础知识精炼 #### 一、Java概述与发展历程 Java是一种高级编程语言,由Sun Microsystems公司的James Gosling等人于1991年开始研发,原名为Oak,旨在控制嵌入式设备如有线电视交换盒和PDA。1994年正式更名...
在“java基础知识应用”这个主题中,我们主要探讨的是Java语言的基础概念及其在实际开发中的应用,特别是与数据库交互的部分。 一、Java语言基础 1. 类与对象: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基础知识.pdf
Java基础知识总结 一些的基础知识 适合初学者和回顾以前的知识