当前位置:文档之家› java基本概念总结

java基本概念总结

小结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、异常类JA V A中除了RunTimeException 类,其他异常均须捕获或抛出。

JAVA一直是很多人喜爱的一种编程语言,在这里北大青鸟徐东校区的老师希望各位努力并快乐的学习这门语言。

学习JAVA需要多看SUN公司提供我们的资料信息,了解常用类的属性和方法。

我发现我们有很多同学在用常用类的时候,经常会把类里面的方法和自定义的方法搞混。

记得有一位老师说过“学习要抱有一种钻研的态度”。

我对这句话的理解是当我们学习到一个新的知识点的时候,需要不断理解和消化。

这可能是一个长期的过程,不能抱有一种急于求成的态度。

以下内容是北大青鸟老师整理的一些JAVA基础:一、SDK和JDK的区别SDK是软件开发工具包,JDK是SDK的一种,其实它是JAVA SDK。

JDK在早期的版本中也是叫SDK,在1.2版本以后才叫JDK。

二、J2EE、J2SE、J2ME区别J2EE:JAVA2平台的企业版,主要应用于WEB和大型企业的开发。

J2SE:JAVA2平台的标准版,学习和一般的开发。

它包含于J2EE。

J2ME:JAVA2平台的微缩版,主要应用于电子设备(手机)方面,它包含有J2SE的核心部分之外,还有一个专业的类。

三、JVM的运行机制类加载→类校验→类执行四、JAVA、JAVAC、用法JAVA:JAVA解释器用于执行JAVA字节码。

它所执行的是一个类并不是一个文件,所以后面类的名字区分大小写。

JAVAC:JAVAC解释器用于将JAVA源代码编译字节码。

五、JAVA标识符1、标识符由数字、字母下划线“_”或“$”符号组成。

2、标识符必须以字母、下划线“_”或“$”符号开头。

3、不能使用JAVA关键字。

4、字母区分大小写六、数据类型1 原始数据类型2 数值类型l BYTEl 整型:SHORT、INT、INTl 浮点:FLOAT、DOUBLE2 BOOLEAN类型1 引用数据类型2 数组2 类2 接口七、变量变量可分为类变量、局部变量、方法变量。

类变量在定义时就有默认值,数值类型的默认为0,CAHR的默认a,BOOLEAN默认FALSE。

方法变量中没有默认值,需要赋值才能使用。

八、类和对象的区别类是对象的模板,对象是类的特例类是抽象的,客观上并不存在的对象是具体的,是客观存的九、类的构造方法构造方法具有和类相同的名字,它是一个没有返回值的方法。

有隐式构造方法和自定义构造方法两种。

JVM 在没有自定义造构方法时提供一个没有参数也没有方法主体的默认构造方法。

但是如果有自定义的构造方法时,JVM不再提供默认的构造方法。

如果在类的实例化是需要用默认构造方法时,必须显示的定义。

十、方法的重载可以对构造方法或者自定义的方法进行重载,对方法的重载必须满足以下三个条件:1、参数个数不同2、参数类型不同3、参数顺序不同十一、面向对象的特性1、封装2、继承3、多态十二、继承的特性继承允许重用现有的类来构造新类的机制。

在继承中具有如下特性:1、默认继承Object2、单继承,只能有一个父类3、子类继承父类除private以外的全部成员和方法。

十三、方法的重写构成方法重写的条件:1、两个继承关系的类里2、方法名、返回值、参数必须一致。

十四、静态(变量、方法、块)静态类型的变量或方法都是属于类的,并不是属某个具体对象的。

所以也称类变量和类方法,所有对象共享一份类变量。

定义类变量或类方法的关键字是static。

静态块是在类第一次加载时执行。

它的作用是初始化类变量成员。

十五、抽象类抽象类是具体抽象方法的、不可以实例化对象的类。

构成抽象类的条件:a) 具有一个以上的抽象方法。

b) 继承一个抽象类,但没有实现全部的抽象方法。

c) 继承一个接口,没有实现全部的抽象方法。

十六、异常Error:内部错误,不期望用户捕获的一种错误。

try语句:try句子里面主要是放置要监控的程序句子catch:以合理的方式捕获和处理异常,主有try语句出错才会执行。

finally:释放资源,不管try里面的语句是否出错都要执行。

throw:手动引发异常throws:由方法引发的异常多层捕获:异常子类一定要位于异常父类之前。

最后一个catch块要用Exception捕获,以便捕获到所有异常。

执行其中一条catch语句之后,其它的catch将被忽略。

《JAVA基础》基本概念总结1、在JAVA中所有万物皆对象,所有的代码都要写在一个类中,在类中主要包含属性(变量)和方法(函数),其它代码必须写在某一个方法中,方法与方法之间是平行的,不能在方法中定义方法。

2、如果一个类名使用了public修饰符,则包含该类的JAVA文件名必须该类名一样,一个JAVA文件中只能有一个类前面可以用public修饰符。

3、类是客观实体的抽象,包含属性(该类的数据),和对属性进行操作的方法,为了避免用户对类的属性进行误操作,我们一般把类的属性定义为私有的,并提供相应的get与set 方法去引用和修改这些属性。

4、类的属性与方法可以使用static修饰符,用static修饰的属性与方法是该类的所有对象所共享的,它们可以直接通过类名去引用,在静态方法中只能引用该类的静态变量与静态方法,因为非静态的属性与方法在该类没有被实例化之前是不存在的,即没有相应的执行空间,为了使用的方便,我们可以把不依赖于类的属性(即在方法中不对类的属性进行操作)的方法定义为静态的。

5、构造函数是当一个类被实例化时执行的一段代码,它决定了该类被实例化后的状态,其名称与相应的类名一样,并且不写返回值的类型,我们一般在构造函数中对类的属性进行初始化。

当不写构造函数时,系统会给我们提供一个不带参数的空构造函数,如果我们写了一个带参的构造函数,系统就不再提供不带参的构造构数了。

6、为了引用一个类中定义的非静态属性与方法,我们需要实例化一个该类的对象,通过该对象去引用相应的方法。

(这是我们实例化一个类的最直接的原因)7、继承可以实现代码的复用,当子类继承了父类之后,子类就拥有了父类中定义的非私有属性与方法。

8、子类对象可以直接赋值给父类变量,但赋值后就不能通过父类对象去引用在子类中定义的方法了。

如果子类覆盖了父类中的方法,则当子类对象赋值给父类后,通过父类去引用该方法时,执行的是子类中该方法的代码。

相关主题