黑马程序员_java基础知识精华总结

本文总结了JAVA中的基础知识部分,具体包括:1、对象的初始化;2、2、继承时,对象的初始化过程;3、关于构造方法;4、有关public、private和protected;5、抽象类;6、final关键字;7、接口interface;8、多重继承;9、接口的嵌入;10、类的嵌入;11、异常类。

1、对象的初始化

(1)非静态对象的初始化
在创建对象时,对象所在类的所有数据成员会首先进行初始化。
基本类型:int型,初始化为0。
如果为对象:这些对象会按顺序初始化。
※在所有类成员初始化完成之后,才调用本类的构造方法创建对象。
构造方法的作用就是初始化。

(2)静态对象的初始化
程序中主类的静态变量会在main方法执行前初始化。
不仅第一次创建对象时,类中的所有静态变量都初始化,并且第一次访问某类(注意此时未创建此类对象)的静态对象时,所有的静态变量也要按它们在类中的顺序初始化。

2、继承时,对象的初始化过程

(1)主类的超类由高到低按顺序初始化静态成员,无论静态成员是否为private。
(2)主类静态成员的初始化。
(3)主类的超类由高到低进行默认构造方法的调用。注意,在调用每一个超类的默认构造方法前,先进行对此超类进行非静态对象的初始化。
(4)主类非静态成员的初始化。
(5)调用主类的构造方法。

3、关于构造方法

(1)类可以没有构造方法,但如果有多个构造方法,就应该要有默认的构造方法,否则在继承此类时,需要在子类中显式调用父类的某一个非默认的构造方法了。
(2)在一个构造方法中,只能调用一次其他的构造方法,并且调用构造方法的语句必须是第一条语句。

4、有关public、private和protected

(1)无public修饰的类,可以被其他类访问的条件是:a.两个类在同一文件中,b.两个类在同一文件夹中,c.两个类在同一软件包中。
(2)protected:继承类和同一软件包的类可访问。
(3)如果构造方法为private,那么在其他类中不能创建该类的对象。

5、抽象类

(1)抽象类不能创建对象。
(2)如果一个类中一个方法为抽象方法,则这个类必须为abstract抽象类。
(3)继承抽象类的类在类中必须实现抽象类中的抽象方法。
(4)抽象类中可以有抽象方法,也可有非抽象方法。抽象方法不能为private。
(5)间接继承抽象类的类可以不给出抽象方法的定义。

6、final关键字

(1)一个对象是常量,不代表不能转变对象的成员,仍可以其成员进行操作。
(2)常量在使用前必须赋值,但除了在声明的同时初始化外,就只能在构造方法中初始化。
(3)final修饰的方法不能被重置(在子类中不能出现同名方法)。
(4)如果声明一个类为final,则所有的方法均为final,无论其是否被final修饰,但数据成员可为final也可不是。

7、接口interface(用implements来实现接口)

(1)接口中的所有数据均为static和final即静态常量。尽管可以不用这两个关键字修饰,但必须给常量赋初值。
(2)接口中的方法均为public,在实现接口类中,实现方法必须可public关键字。
(3)如果使用public来修饰接口,则接口必须与文件名相同。

8、多重继承

(1)一个类继承了一个类和接口,那么必须将类写在前面,接口写在后面,接口之间用逗号分隔。
(2)接口之间可多重继承,注意使用关键字extends。
(3)一个类虽只实现了一个接口,但不仅要实现这个接口的所有方法,还要实现这个接口继承的接口的方法,接口中的所有方法均须在类中实现。

9、接口的嵌入

(1)接口嵌入类中,可以使用private修饰。此时,接口只能在所在的类中实现,其他类不能访问。
(2)嵌入接口中的接口一定要为public。

10、类的嵌入

(1)类可以嵌入另一个类中,但不能嵌入接口中。
(2)在静态方法或其他方法中,不能直接创建内部类对象,需通过手段来取得。

手段有两种:


class A { 
class B {} 
B getB() { 
B b = new B(); 
return b; 

}

static void m() { 
A a = new A(); 
A.B ab = a.getB(); // 或者是 A.B ab = a.new B(); 
}

(3)一个类继承了另一个类的内部类,因为超类是内部类,而内部类的构造方法不能自动被调用,这样就需要在子类的构造方法中明确的调用超类的构造方法。接上例:


class C extends A.B { 
C() { 
new A().super(); // 这一句就实现了对内部类构造方法的调用。 

}

构造方法也可这样写:


C(A a) { 
a.super(); 
} // 使用这个构造方法创建对象,要写成C c = new C(a); a是A的对象。

11、异常类

JAVA中除了RunTimeException类,其他异常均须捕获或抛出。

时间: 2024-10-08 05:08:17

黑马程序员_java基础知识精华总结的相关文章

黑马程序员_Java基础知识

java基础知识 1.Dos命令: dir:列出当前目录下所有的的文件及文件夹 md:创建目录 rd:删除目录 cd:进入指定mul cd\:返回到根目录 cd..:退到上级目录 del:删除文件 exit:退出dos命令行 *:通配符 help:帮助命令 2.path系统变量:系统中应用程序所在的路径 临时配置的环境变量的方式:用set命令完成 set:用于查看本机中所有环境变量的信息 set 变量名:查看具体的一个环境变量的值 set 变量名=:清空变量的值 set 变量名=具体值:赋值 在

黑马程序员_JAVA基础知识总结3

Java源文件的扩展名是.java,编译之后生成.class的文件.所有的类都有一个共同的继承祖先Object类 一个.java文件中只能有一个public类,一个public类只能定义在以它的类名命名的文件中 Implement关键字用来实现接口,类可以实现多个接口,继承使用extends 关键字 package(包)为了更好的组织java程序,包为java程序提供了一个命名空间,一个java类的完整路径由它的包和类名共同组成 Java类或者没有public关键字表示该类在它所在的包中可见,这

黑马程序员_JAVA基础知识总结2

IDE > Java Enterprise Edition Java SE >1.在JavaEE开发中,经常要使用到JavaBean.很多环境要求按JavaBean方式进行操作. IntroSpector: PropertyDescript/Introspector/BeanUtils 注解> Java源文件 2.RetentionPolicy.CLASS > 内存中的字节码 @Target元注解用于表示自定义的注解可以用在哪些地方,通过ElementType的枚举元素来指定 泛型

黑马程序员_Java基础_接口

------- android培训.java培训.期待与您交流! ---------- 0.接口知识体系 Java接口的知识体系如下图所示,掌握下图中的所有知识就可精通接口. 1.接口概论 1)接口概念 接口是从多个相似类中抽象出来的规范,接口中不包含普通方法,所有方法都是抽象方法,接口不提供实现.接口体现的是规范和实现分离的哲学.规范和实现分离正是接口的好处,让软件系统的各个组件之间面向接口耦合,是一种松耦合的设计.接口定义的是多个类共同的公共行为规范,定义的是一组公用方法. 2)接口与抽象类

黑马程序员_JAVA 基础加强学习笔记

一.面向对象 (一)继承  1.继承的好处: (1) 提高了代码的复用性. (2) 让类与类之间产生了关系,提供了另一个特征多态的前提. 注意: 子类中所有的构造函数都会默认访问父类中的空参数的构造函数,因为每一个子类构造内第一行都有默认的语句super();  如果父类中没有空参数的构造函数,那么子类的构造函数内,必须通过super语句指定要访问的父类中的构造函数. 如果子类构造函数中用this来指定调用子类自己的构造函数,那么被调用的构造函数也一样会访问父类中的构造函数. 2.final特点

黑马程序员_Java基础加强(下)

8.注解类 注解相当于一种标记,加了注解就等于打上了某种标记,没加就等于没打特殊标记,开发工具和其他程序可以用反射来了解你的类及各种元素上有无何种标记,看你有什么标记就去干什么事,标记可以加在包.类.字段.方法,方法的参数以及局部变量上. 注解的应用结构图: 为注解增加属性 定义基本类型的属性和应用属性 在注解类中增加String color(); @MyAnnotation(color = "red") 用反射方式获得注解对应的实例对象后,再通过该对象调用属性对应的方法 MyAnno

黑马程序员_Java基础加强(上)

1.静态导入 静态导入是jdk1.5版本以后出现的新特性,一般是指导入静态方法,如:import static java.lang.System.out 是指导入系统输出的静态方法. 例: import static java.lang.System.out //导入java.lang包下的System类的静态方法out public class StaticImport { public static void main(String[] args) { int x=1; x++; out.p

黑马程序员——集合基础知识(泛型)

集合:泛型基础知识 泛型.(泛型就是类型参数化,默认的时object,虽然不用强制类型转换,这个就要你自己去写特性方法,比如compareto是string的特有方法吧,你可以写但是父类肯定调用不了) itnex t对象都是obj要使用对象的特性功能必须强.编译的时候没问题,因为都不知道你会传什么对象,你橙子也可以当作apple来传,设计的时候并不知道! 泛型作用.1.用于解决安全问题.运行时期出现的问题classcastexception转移到编译时期.2.迭代器里面的itnext()不用强转

黑马程序员——集合基础知识(Collection)

集合基础知识 数组:长度固定,可存基本数据和对象. 集合:只能放对象,不固定.容器也有共性,不断抽取成一个体系,集合框架.参阅顶层创建底层.顶层是collection.collection里有两个常见的接口,List和Set.常见集合有Arraylist,linkedlist,vector,hashSet TreeSet.为什么会出现这么多的容器呢,因为每一个容器对数据的存储方式都有不一样,.这个存储方式称之为数据结构!!因为他们的特点不一样 list因为有脚标存储和删除的效率很低,Set的效率