第1章Java概述1.2Java的特点:简单、面向对象、与平台无关、多线程、安全、动态1.3安装Sun公司的SDK:三种平台:JavaSE(J2SE)、JavaEE(J2EE)、JavaMe(J2ME)。pathclasspath设置1.4一个Java程序的开发过程:编写源文件(文件名.java)→编译Java源程序:使用Java编译器(javac.exe)编译源文件,得到字节码文件→运行Java程序:使用JavaSE平台中的Java解释器(java.exe)来解释执行字节码文件。1.5一个简单的Java应用程序的开发过程:源文件命名:源文件中有多个类,那么只能有一个类是public类。如果有一个类是public类,那么源文件的名字必须与这个类的名字完全相同,扩展名是.java。如果源文件没有public类,那么源文件的名字只要和某个类的名字相同,并且扩展名是.java就可以了第2章标识符、关键字和数据类型2.1标识符和关键字:标识符由字母、下划线、美元符号和数字组成,并且第一个字符不能是数字字符。2.2Java的8种基本数据类型:boolean、byte、short、int、long、float、double、char2.3Java的数组:引用类型inta[]={100,200,300};inta[]=newint[10]对象数组第3章运算符、表达式和语句3.2语句概述:6类:1.方法调用2.表达式语句3.复合语句4.空语句5.控制语句6.package语句和import语句。3.3控制语句Switch(整形表达式){case整形常量1:break;Default:}3.4循环语句3.5break和continue语句第4章类、对象和接口4.1编程语言的几个发展阶段4.1.1机器语言4.1.2过程语言4.1.3面向对象编程=对象+类+继承+消息传递:特点:封装、继承、多态4.2类:命名规则:包、类、变量、方法等命名:要体现各自的含义。包名:全部小写,io,awt。类名、接口名:每个单词的首字母大写,HelloWorldApp。方法名、变量名:第一个单词小写,后面每个单词的首字母大写,setName。常量名:全部大写,MAX。4.2.1类的实现=类声明+类体(变量的声明+方法的定义(方法声明+方法体))4.2.2类声明的变量称作对象。创建对象包括对象的声明和为对象分配内存的两个步骤。4.2.3成员变量和局部变量局部变量隐藏成员变量4.2.4方法:消息:oba.method(parameter)4.2.5方法重载方法的参数必须不同4.2.6构造方法:必须与它所在的类的名字完全相同,而且没有返回类型,new调用4.2.8值得注意的问题:类方法只能直接访问类成员,实例方法都可访问4.3对象:属性和方法的集合4.3.1创建对象PeoplezhangPing=newPeople(参数);4.3.2使用对象对象.成员或对象.方法名(参数)4.3.3对象的引用和实体应理解堆区与栈区的区别4.3.4参数传值值类型方法不能更改实参变量或它的任何成员。引用类型:方法不能更改实参变量,但可以更改它引用的对象的成员。4.4static关键字4.4.1实例变量和类变量的区别共享一个类变量,实例变量:每个对象都有自己的实例变量4.4.2实例方法和类方法的区别:类方法只能直接访问类成员,实例方法都可访问4.5this关键字可以出现在实例方法和构造方法中,但不可以出现在类方法中4.6包:包是类与接口的集合,Java提供包来管理类名空间可以解决类名冲突4.6.1包语句packageabc.def;4.6.2import语句:importpackage1[.package2…].(classname|*);4.6.3将类打包javacTx.java-d.4.7访问权限4.7.1私有变量和私有方法4.7.2共有变量和共有方法4.7.3友好变量和友好方法4.7.4受保护的成员变量和方法4.7.5public类与友好类:publicclass或class4.8类的继承classSubClassextendsSuperClass{……}4.8.1子类4.8.2子类的继承性:子类继承了父类中除了构造方法外的所有成员,不能访问父类的private成员变量4.8.3成员变量的隐藏和方法的重写子类派生过程主要体现在三个方面:继承超类的成员变量和成员方法;增加新的成员变量和成员方法;覆盖(修改、重写)超类的成员方法,或重载超类的成员变量方法覆盖中,子类在重新定义父类已有的方法时,应保持与父类完全相同的方法头声明。4.8.4final关键字:final类不能被继承常量方法不能被重写4.9对象的上转型对象上转型对象可以操作子类继承或隐藏成员变量,也可以使用子类继承的或重写的方法4.10多态性:上转型对象调用子类重写的方法多态性的意义:1、异类集合2、多态参数4.11abstract类和abstract方法:不能用new运算创建对象可用于定义对象引用4.12super关键字:子类中调用超类的构造函数使用被子类隐藏了的父类的成员变量或方法4.13接口:定义行为协议4.13.1接口的声明与使用Interface接口名entends父接口{常量:publicstaticfinal方法:publicstatic可省略}classAimplementsPrintable,Addable4.13.2理解接口:面向接口编程4.13.3接口回调:接口类型的对象调用接口中的方法4.13.4接口做参数:且有多态性4.14内部类:Java将内部类作为外嵌类的一个成员,就如同其成员变量与成员方法一样4.15匿名类4.15.1和类有关的匿名类4.15.2和接口有关的匿名类4.16异常类1、程序不能处理的错误——Error程序应能避免的异常——RuntimeException必须捕获的异常——Exception自定义异常4.16.1try-catch语句try{可能产生异常的代码;}catch(exceptiontype1e){异常e的处理语句}catch(exceptiontype2e){异常e的处理语句}……finally{最终的处理}使用throws语句throws子句一般用来表明在使用该方法时可能抛出异常但不捕获的异常。异常由系统来处理4.16.2自定义异常类thrownewMyException()4.17Class类:反射4.17.1获取类的有关信息4.17.2使用Class实例化一个对象Classc=Class.forName();c.newInstance()4.18基本类型的类包装:用于集合,用于类型转换4.18.1Double类和Float类4.18.2Byte、Integer、Short、Long类4.18.3Character类4.19反编译和文档生成器javapjavadoc()4.20JAR文件可将jar包放到classpath中4.20.1将应用程序压缩为JAR文件java–jarMyjar.jar4.20.2将类压缩成JAR文件jarcfmtom.jarmymoon.mfA.classb.class4.20.3更新、查看JAR文件1.开发与运行Java程序需要经过哪些主要步骤和过程?答:(1)编写Java源文件:使用文本编辑器(Edit或记事本),拓展名为.java(2)编译Java源文件:使用Java编译器(javac.exe)。得到字节码文件*.class(3)运行Java程序:Java应用程序使用Java解释器(java.exe)执行字节码文件;2.Java程序是由什么组成的?一个程序中必须要有public类吗?Java源文件的命名规则是怎样的?答:①Java程序由类组成。②应用程序可以没有public类;小应用程序一定有一个类是public类(主类)。③应用程序:如果只有一个类,源文件名与该类的类名相同,拓展名为.java;有多个类时,如果有public类(最多一个),源文件名与public类的类名相同,拓展名是.java;没有public类,源文件名与任何一个类的类名相同即可,扩展名为.java小应用程序:源文件名与主类的类名相同,拓展名是.java。3.什么叫标识符?标识符的规则是什么?答:①用来标识类名、变量名、、方法名、类型名、数组名、文件名的有效字符序列。②由字母、下划线、美元符号和数字组成,并且第一个字符不能是数字字符,而且关键字不能作为标识符。1.类中的实例变量在什么时候会被分配内存空间?答:在使用类创建实例对象时会被分配空间。2.什么叫方法的重载?构造方法可以重载吗?答:一个类中可以有多个方法具有相同的名字,但这些方法的参数必须不同,即或者是参数的个数不同,或者是参数的类型不同。构造方法可以重载。3.类中的实例方法可以操作类变量(static变量)吗?类方法(static方法)可以操作实例变量吗?答:可以,类变量是属于整个类,也属于所有该类创建的对象,它在类定义时已经被分配空间,故使用实例方法去操作类变量不会出现非法操作问题。不可以,因为实例变量在创建对象的时候才被分配空间,对象在使用完后即可能被销毁,而类方法的生命周期为类定义到程序退出,且可以直接通过类名调用。当调用类方法去操作一个并求被分配空间的对象的实例变量时,这明显是不符合逻辑的,故类方法只能操作类变量或类方法。4.类中的实例方法可以用类名直接调用吗?答:不可以,实例方法是属于某个具体的类的对象,而不是属于类,它操作的对象的实例变量只在对象被创建时分配空间并初始化,实例变量都未被分配空间时,实例方法是不能去操作它的。5.简述类变量和实例变量的区别?答:①不同对象的实例变量将分配不同的内存空间,实例变量则属对象私有,某一个对象将其值改变,不影响其他对象;而类变量,则所有对象的这个类变量分配相同的一处内存,类变量是所有对象共有,其中一个对象将它值改变,其他对象得到的就是改变后的结果;②类变量在类被加载到内存时就分配内存空间;而实例变量在使用New()创建对象时才分配内存空间③类变量可以通过对象和类名访问,而实例变量只可以通过对象访问6.子类将继承父类的哪些成员变量和方法?子类在什么情况下隐藏父类的成员变量和方法?在子类中是否允许有一个方法和父类的方法名字相同,而类型不同?答:子类和父类在同一个包时,子类将继承父类中不是private的成员变量及成员方法作为自己的成员变量及成员方法,继承的成员的访问权限保持不变。子类和父类不在同一个包时,子类将继承父类的protected、public成员作为自己的成员变量及成员方法作为自己的成员变量及成员方法,子类中它们的访问权限保持不变,子类没有继承父类的友好变量及友好方法。对于子类可以从父类继承的成员变量,只要子类中定义的成员变量和父类中的成员变量同名时,子类就隐藏了继承的成员变量。对于已继承的方法,子类可以通过方法重写来隐藏继承的方法。允许,其实这就是方法重载,而方法重写则是子类中定义的方法,其名字、返回类型、参数个数和类型与从父类继承的方法完全相同,方法重载不会隐藏同名方法。8.父类的final方法可以被子类重写吗?答:不可以,final方法相当于final变量一样,相当于常量,其值不可被改变,只不过用final修饰的方法是常成员方法,其方法体不可被改写与其是一样的道理。9.什么类中可以有abstract方法?答:abstract类中可以有abstract方法。10.什么叫对象的上转型对象?答:假设B类是A类的子类或间接子类,当用子类B创建一个对象,并把这个对象的引用放到A类的对象中时,如:Aa;a=newB();或Aa;Bb=newB();a=b;那么,称这个A类对象a是子类对象b的上转型对象。11.什么叫接口的回调?答:如果把实现某一接口的类创建的对象的引用赋给该接口声明的接口变量,那么该接口变量就可以调用被类实现的接口中的方法,实际上,当接口变量调用被类实现的接口中的方法时,就是通知相应的对象调用对象中已实现的接口的方法,这种