版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第一章Java概述
1.Java如何实现跨平台?
通过Java虚拟机JVM来实现跨平台,先将Java源程序编译成字节码(后缀为.class的代
码),字节码可以在Java虚拟机上运行,不同的平台有不同的Java虚拟机JVM,相同的
字节码可以不同的平台上运行。
2.Java开发的三个平台是什么?
J2SE、J2EE和J2ME
3.如何编译与运行java程序?
在Dos命令提示符状态下通过命令行来实现的。例如:
test,java►test,class►Output
javacjava
如果用命令行运行test的话,后面不可以写”.class”,若写成test,class系统会把class
当成类名test当成类包,所以在没有类包的情况下不要写成“.class”形式。
第二章Java基础
1.什么是标识符?如何定义标识符?
标识符是用来标识变量、常量、方法、类、对象等元素的有效字符序列。Java语言规定标
识符由字母、下划线、美元符号和数字等组成,并且第一个字符不能是数字。
对标识符的约定:(1)变量名、对象名、方法名、报名等标识符全部采用小写字母;如果
标识符由多个单词构亦则首字母小写,其后单词的首字母大写,其余字母小写,如getAge。
(2)类名首字母大写。(3)常量名全部字母大写。
2.关键字的定义?
关键字是由Java语言定义的、具有特殊含义的字符序列。其首字母不能大写。如:this,
super,extends,if,class,instanceof
3.Java中数据类型的结构?
布尔(boolean)
字符(char)
(基本数据类型Ir字节(byte)
[定点类型<短整数(short)
整数(int)
I数值类型<
长整数
数据类型《((long)
[浮点类型\单精度浮点数(float)
双精度浮点数(double)
(类
I引用数据类型接口
,数组
float与double定义时的区别:float型的数要在后面要加f,如34.5f
4,常量与变量的声明方式?
常量:final[修饰符]类型标识符常量名=(直接)常量
如:finalpublicdoublePAI=3.14;
变量:[修饰符]类型标识符变量名匚常量];
如:publicfloatx=25.4f;
常量与变量的区别:一旦定义为常量了,其值不能改变,若要改变其值,只能改变声明时
的值。
5.Java的运算符和表达式?
单目运算符:++、-、-
双目运算符:+、-、*、/、%
逻辑运算符:&、I、!、A、&&、II
区别,逻辑与:&/逻辑或:I
:短路与:&&(只要一个为F,•定为F)[短路或:II(只要一个为T,则一定为T)
6.关于注释的正确写法?,
“〃........”单行注释
“/*........*/'多行注释
第三、四、五章
l.Java的三种基本控制结构?
顺序,选择和循环
if,switch,while,for,continue与break区另U
2.数组的定义?举例定义一个基本数据类型的数组和一个引用数据类型的数组。
数组是一组同类型的数据的集合,除了基本数据类型还包括引用数据类型,那么引用数据
类型数组是如何声明、初始化和使用的。
例:基本数据类型数组的声明,初始化
int[]c=newint[5];(5表示数组的单元长度是5)
c[0]=-5;
或int[]c={1,2,3);c[2]=3;
引用数据类型数组的声明初始化
例:String[ls=newString[3];(3表示有3个单元)
S[0]=newString("ab");
或
String[]sl={'T',"2","3"};
或
String[]sl=newString,3”);
String[Js2=newString("2’’);
String[]s3=newString("3");
3.如何声明数组,初始化数组以及使用数组?
4.如何获得数组单元的长度?
intlen=s.length
5.熟练掌握一维数组的声明、初始化和操作
6.字符串的声明与初始化?
‘常量字符串String,字符串直接量
字符串JI字符串常量
可变字符串StringBuffer
.字符串
String§="hello”hello会保存在字符串值里
字符串直接量
Stringsl.=newstring("hello");在堆上开辟了一个新的对象空间来存放hello
对象变量
Strings2="hello";先看字符串池里面有没有hello,若有则直接将s2指向那个位置
Strings3=newstring("hello’');
只要有new出现就一定会开辟一个新的空间。
7.字符串直接量与字符串常量的区别:
存储位置不一样,字符串直接量放在字符串值里,字符串常量放在堆上。
8.常量字符串类与可变字符串类分别是什么?
9.常量字符串的基本操作方法有哪些?
5+5+“Hello”=?।-------->"lOHello''"Hello"+5+5=?=>"Hello55”
"=="与"equals”的区别:
比较对象是否相等的方法是“==”和"equals”,在采用“equals”进行比较时不会出现问题,“=="
比较引用变量的值,“equals”(对象:内存里整块存储的东西,对象变量Stringsisi即
为对象变量)比较的是对象里的内容,故比较时应该比较对象里面所包含的内容而不是对
象变量。
第六、七、八章
1.什么是类?类的成员组成?接口是否为类的成员?
类就是将我们自然界中的事物的属性特点和行为特点抽象封装到类当中,反映这类事物的
特点和功能。类的成员包括域变量和成员方法,对于域变量和成员方法都可以用static来
修饰,static修饰的域变量称为类变量,static修饰的方法称为类方法,没有被static修饰
的域变量和成员方法称为实例变量(可以在程序中直接调用)和实例方法。接口不是类的
成员,是一种特殊的类,不用class,而H]interface。
2.关于类的正确表述?
必须依照类的写法,如何定义
3.什么是静态域变量和实例域变量,静态方法和实例方法?
静态域变量称为类变量,静态方法也称为类方法,因为它们可以通过“类名来调用.
4.什么是对象?如何创建对象?什么是对象变量?如何对对象进行初始化?
对象是类的一个实例。new在创建对象的作用:(1)通过new在堆上开辟一个对象空间,
将类当中的域变量跟成员方法复制到对象空间当中;(2)通过new来调用构造方法来初始
化对象;(3)将对象空间的首地址赋值给对象变量。对象变量就是指对象的首地址,通过
构造方法对对象进行初始化。
5.什么是构造方法?构造方法的特点与作用?
构造方法:(1)在一个类中方法名与类名相同的方法;(2)构造方法不是通过对象来调用,
而是通过new运算符来调用;(3)构造方法是一种特殊的成员方法,它没有返回值。
构造方法特点:可以被重载,当没有在类中定义构造方法时,系统会默认提供一个不带参
数的构造方法。作用:初始化对象。
6.super和this关键字的用法?
this用在当前类,当前类的一个默认的对象,可以通过this来调用当前类的属性和成员方
法,也可以直接调用当前类的构造方法的重载方法。super用于一个类的子类中,作为父
类在子类中的••个默认的对象,通过它来调用父类的成员属性和成员方法,也可以在子类
的构造方法里直接调用父类的构造方法。
7.final修饰类、变量和方法时各有什么特点?
修饰类:这个类不能够被继承。
修饰变量:这个变量值不能改变,成为一个常量。
修饰方法:这个方法不能被覆盖。
8.面向对象编程中,java类的三个主要特征是?
三个主要特征:封装性、继承性和多态性
封装性:通过类的访问修饰符来实现封装性的public,protected,缺省,private的访问权限
继承性:extends•个类继承了另一个类,那么父类的所有成员属性和成员方法都可以被继
承到子类当中,子类也可以创建新的成员属性和成员方法(现有的类创建新的类
的特性)super
多态性:静态多态性,如:重载函数。
动态多态性,如:覆盖函数。
重载(overload):一个类中可以定义多个名称相同,但参数变量不同的方法,重载方法与
返回类型无关,重载方法常常用于构造方法,用于实现不同功能的初始化工作,重载
也称为静态多态性,这是山于该方法被调用时采用静态地址充定位方式。
覆盖(override):在子类中对父类的某方法进行了重新定义,但方法的签名特征与父亲完
全一致,访问修饰符的访问的限制宽于或至少等于父类的访问权限;主要用于实现同
一个方法在不同的类中实现不同的表现形式,覆盖也称为动态多态性,这是由于该方
法只有在运行时才能确定所调用的地址(也是多态性)。
9.什么是抽象类?什么是抽象方法?抽象类的特点?
在类中至少有一个方法是抽象方法,那么这个类就称为抽象类,用abstract来修饰抽象类。
抽象方法即没有定义这个方法的主体,给出这个方法的签名特征。特点:抽象类的对象变
量是通过它的非抽象的子类来初始化的。
如:AnimalT=newTiger()里的方法都是抽象方法,修饰符为public,没有写默认为public
抽象类非抽象类
10.什么是接口?接口的特点?接口的作用?
接口是使用interface关键字来代替class的特殊的类。
接口的三种形式:(1)仅有常量接口;(2)常量和抽象方法接口(3)仅有抽象方法接口。
作用:(I)可以实现常量接口在多个类当中共享常量;(2)实现共享一组标准操作来实现
多个类之间的共享约定;(3)实现多态性。
11.接口与抽象类的区别?
接口中所有的方法都是抽象方法,不管这个方法是否使用public,abstract修饰,它都是
默认的公有的抽象方法,抽象类至少有一个抽象方法,而且还有一个成员方法,接口中不
能定义构造方法,抽象类可以定义构造方法。
12.什么是包?包的作用?
包是java语言提供的组织类和接口的工具,将一组相关的类为接口,组织到一个包中。
作用:(1)通过包可以来确定类的唯一标识;(2)通过包可以将相似功能的类和接口组织
在一个包中。
第九章
1.什么是异常?为什么要处理异常?
异常是指程序运行过程中出现的非正常现象。由于异常情况总是难免的,良好的应用程序
除了具备用户所要求的基本功能外,还应该具备预见并处理可发生的各种异常的功能。
2.异常的基本处理方式?常用的异常类有哪些?
两种处理方式:(1)一旦捕获异常马上进行处理。try,catch,finally
(2)捕获异常并不处理,而是利用方法将异常抛出,throw,throws
3.Error和Exception类的区别?
Error是用来处理较少发生的系统内部的错误,程序员对这些错误通常无能为力,只能在
发生时由用户按照提示来终止程序的运行。
4.throw和throws语句的区别?
throw是抛出一个异常对象,如:thrownewXXXException
throws是某一个方法在声明和定义时,这个方法后血紧跟着throws,然后阐明这个方法可
能抛出异常,如:throwsnewXXXException这个异常可以是标准异常类,也可以是
自定义的异常类。
第十章
I.Java输入输出的基本方式?
主要是通过输入和输出流实现的,输入流将数据从文件标准输出或其他外部设备输入,
输出流将数据保存到文件或传输给相关的设备。
2.字符流域字节流的区别是什么?举例说明哪些类处理字符流?哪些处理字节流?如果字
节流向字符流进行转换需要用什么类?
字节流是以字节为单位的访问文件,字节流具有两个重要的抽象类,“inputstream和
outputstream"。字符流是以字符为单位的访问文件,两个重要的抽象类,"Reader和
Writer”。
桥接类在定义字节流时,由于任何字节流的类都跟着一个stream,字符流的类后缀reader,
writer,桥接类:跟着Inputstreamreader和Outputstreamwriter。
3.为什么需要使用带有缓冲的输入输出流进行数据的读取与写入?
提高运行效率,对字符而言,为BufferReader,对字节而言,BufferInputstream
如:BufferReadernew=BufferReader()
第十、十二章
1.javaGUI编程需要导入哪些包?
.awt*,.Swing*,,event*
2.什么是组件?什么是容器?哪些是顶层容器?哪些是中间容器?
组件是图形用户界面是哪个现实的各种图形基本成分和核心元素。
容器是可以包含其他组件的组件,容器是组件的一种。
顶层容器:JFrame,JDialog,JApplet(用于布局其他容器与组件的最基本容器)
中间容器:JPanel,JScrollpane,JTabbedpane,JToolBar
最灵活最常用的中间容器
3.什么是布局管理器?作用是什么?说出三种布局管理器及其特点。
布局管理器是用来管理各种组件容器中摆放位置的对象;作用是将组件房子相应的位
置,使容器中的组件安排更加合理,减少与系统平台的相关性;BorderLayout(边布局)
类:把容器内的空间划分为东、西、南、北、中五个区域;FlowLayout(流式布局)类:
从左到右排列;GridLayout(网格布局)类:从左到右从上到下的顺序依次放入各网格
中(没个网格只能放个组件)
4.什么是事件?Java如何处理用户的操作?
事件:当用户用键盘或鼠标来进行操作时,操作系统发出的相应的信号。
事件源:用户在操作过程中所使用的相关组件。
通过事件驱动模型来处理用户操作的。
5.列出常用的时间监听器接口及其方法。
ActionListeneractionperformed()
AdjustmentListeneradjustmentValueChange()
FocusListenerfocusLost()focusGained()
ItemListeneritemStateChange()
KeyListenerkeyPressed()正按下那个键还没有弹起keyTyped()已经
按下那个键
MouseListener
JAVA编程复习总结笔记一
1安装JDK时不要默认安装到C:\ProgramFiles\java,因为"ProgramFiles,中间有空
格,会对以后安装的相关软件的运行。所以,最好默认安装到C:\jdk…中。
2Eelipse也是iava写的
3java最关键两种机制:垃圾收集和虚拟机
4SDK:SoftwareDevelopmentKitJRE:JavaRuntimeEnvironment
5Solaris
6配置path&classpath
1)Path:windows系统执行命令时要搜索的路径
所以,javac其实是执行了windows下面的一个司,执行文件:C:\jdk5.O\bin下面的
javac.exe命令.windows执行时会到一个叫path的环境变量下去找。
2)Classpath:java在编译利运行时要找的class所在的路径
.;当前目录下执行,一定要写在最前面。
C:\testtest目录下执行
7UltraEdit-32出现###.java.bak文件,是UltraEdit自动添加的.高级-配置-文件处理-
备份:选择不备份就可以了
8本质上讲,变量其实是内存中的一小块区域,使用变量名来访问这块区域.
因此,变量必须先声明(先把这块内存给我分配了),后赋值(填内容),才能使用。
9内存管理:
Heap:动态生成内存用的,即new出来的东西
Stack:局部变量
Datasegment:静态变量字符串常量
Codesegment:存放代码
10java变量的分类:
1)按被声明的位置
局部变量:方法或语句块内部声明的
成员变量:(不是C++的全局变量)方法体外,类体的内部声明的
11Java采用Unicode编码,Unicode是全球语言统一编码
128位表示1个字节,2个字节表示1个字符。
(1个字节最多表示2的8次方个符号,所以用来表示中文,日文一个字节不够用,所以生
国有国标码:GB2312)
13Boolean只能是true和false.
1Byte:•个字节short:二个字节int:四个字节long:八个字节
2八进制要求以0开头,如012
卜六进制要求以0X或Ox开头,如0x12
3编程格式:
1)右大括号对齐
2)遇到左大括号tab键(或者shift+tab)缩进
3)程序块之间加空行
4)并排语句之间加空格
5)运算符两边加空格
6)成对编程
7){前面有空格
4运算符
/:除%:求余
5Voidcatchdog(Dogd){
d.scream();
)
6JDK本身就提供了很多类,比如string
7引用变量相关知识点:
Java里除了基本类型(四类八种)之外的变量都叫引用类型
Java中的对象是通过引用对其操作的。
引用分配的是两块内存:
Strings;先在内存中占NULL,在stack内存中
S=newstring("hi”);完了实际分配内存,s指向了在he叩内存中中new出的对象
类的成员变量在不同的对象中有不同的值
但方法只有一份,不占内存,只是一堆代码。只有在执行的时候才占内存。
8使用对象(引用).成员变量
使用对象(引用).方法来调对象的方法。
9构造方法与类同名且没有返回值,而其他的方法必须要有返回值,没有intdouble
的时候必须也要有void.
10Personjyang=newperson。,3);的时候,注意类person带了参数,说明不是编译器自
动添加的构造函数了,这说明已经重载的构造方法。
如果没有重载的话,应该是personjyang=newperson();
11约定俗成的命名规则:
1)类名的首字母大写
2)变量名和方法名的首字母小写
3)驼峰标识
1static
1)static的成员变量只有一份,不像其他的成员变量只要new一个对象就有一份。
2)在调用static方法时,不会将对象的引用传递给它!static方法中不能访问非static
成员,即静态方法不再是针对某个对象调用,所以不能访问非静态方法。
3)可以通过对象引用或类名(不需要实例化)访问静态成员。
2第一句话写package
访问位于同一个包下面的类不需要引入
3iava.lang包含一些java的核心类,如string,math,integer,system和Thread,提供常用
功能。
Java.awt包含了构成抽象窗口工具集(abstractwindowtoolkits)的多个类,用来构建GUI。
Java.applet包含applet运行所需的一些类。
J包含执行与网络相关的操作的类。
Java.io
Java.util包含一些实用工具类,如定义系统特性,使用与日期II历相关的函数。
4jar-cvfxx.jar*.*
5private类内部访问,即使是子类继承了也不能用。
default类内部,同一个包内的其它类也可以访问
protected类内部。同一个包可以访问或者不是这个包但是子类也可以
public任何地方都可以
6extends通过继承,子类自动拥有了基类的所有成员变量和方法。
7java只支持单继承,一个子类只能有一个基类,但一个基类可有派生出多个子类
8重写:override
在子类中可以根据需要从基类中继承来的方法进行重写。
重写方法必须和被重写的方法具有相同的方法名称,参数列表和返回类型
重写方法不能使用比被重写方法更严格的访问权限
重载:
一个类中的。
9Java类中使用super来引用基类成分,
This是当前对象的引用(this.##),super是父类对象的引用(super.##)。
1继承中构造方法的规则
1)子类的构造的过程中必须调用其基类的构造方法,即构造子类的时候必须先构造好
基类(没有父亲的存在咖有儿子的存在)
2)子类可以在自己的构造方法中使用super(argment」ist)调用基类的构造方法.如果调
用super,必须写在子类构造方法的第一行
3)如果子类没有显示的调用基类构造方法,系统默认调用基类默认的构造方法(此时,
如果基类构造方法重载,这时没有写无参数的构造方法,编译器没有默认构造方法,则
出错)
2Object类
1)Java.lang中的类,是所有iava类的根基类
2)类的声明中未使用extends关键字指明其基类,则默认为从。bjects继承
3)finalizeO:类似C++的析构函数,在java中垃圾回收器帮忙自动调用这个方法。
clone():
getClass。:与反射有关,返回一个对象运行时的类
toStringO:
1)object类中定义有publicStringtoString(),其返回值是String类型,描述当前对象的有
关信息。
2)在进行String与其它类型数据的连接操作时(如:System.oul.println(llinfo,,+Persion)),
将自动调用该对象类的toString。方法
3)可以根据需要在用户自定义类型中重写publicStringtoString()方法。
system.out.println(b);(b是一个new出的对象)
4)重写要copy!如果重写成publicStringToString。,编译没问题,但运行不行。
equals。:加"s"第三人称。
1)system.out.println(Cl==C2)结果为false
system.out.println(Cl.equals(C2));结果为false.这是最原始的equals方法,所以结果换
汤不换药,和上面的一样。
因为比较的两个猫的引用,内存地址不等,永远不等。
2)所以需要重写equals。方法:
publicbooleanequals(Objectobj){
if(objinstanceofCat){〃如果obj属于一只猫
Catc=(Cat)obj;//强制转换object为一只猫
}
3)object类中的string类色拉类等都已经重写了equals方法。
1)基类的引用类型变量可以指向其子类的对象
2)基类的引用不可以访问其子类对象新增加的成员(属性和方法)
如:基类animala=newdog();a不能访问dog的新增成员。
3)可以使用引用变量instanceof类名来判断该引用型变量所指向的对象是否属于该类
或该类的子类(如:ainstanceofdog)
4)子类的对象可以当作基类的对象来使用称作向上转型(upcasting),反之称为向下转型
(downcasting濡强制转换。
如:dogdl=(dog)a;把动物a强制转换成一只狗。
1抽象修饰符可以修饰抽象类和抽象方法。凡是用抽象修饰符修饰的类被称为抽象类。抽象
类就是没有具体对象的概念类。山于抽象类是它的所有子类的公共属性的集合。例:abstract
classphonecard表示电话卡类所有公共属性。修饰符abstract修饰的抽象方法是一种仅有方
法头,而没有具体的方法体和模块实现的方法。例:abstractvoidphonecard;可见abstract方
法只有方法头的声明,后面没有大括号包含的方法体。
2静态修饰符使用在静态域和静态方法中,静态域是用static修饰符修饰仅属于类的域,它
们是类的域,不属于任何一个类的具体对象,静态域是一个公共的存储单元,任何个对象
访问它时,取到的都是相同的数值。
例:SeiAddtory():
StaticvoidsetAdditory(doublenewadd)
{if(newAdd>0)
additoryFee=newAdd;//additoryFee为静态域。
)
2.什么是构造函数?构造函数有什么特点?子类如何调用父类?
1构造函数:构造函数用来处理对象的初始化。它是一种特殊的成员函数。构造函数名必须
与类名相同,它不具有任何类型,不返回任何值。
2构造函数的特点:A可以为对象的属性赋初值,还可以在对象初始化过程中进行必要的
检查和处理。B提高了编程的灵活性。
3子类调用父类:A如果子类没有定义任何函数,那么就在创建子类对象时将调用父类的无
参数的构造函数B如果子类自己定义了构造函数,则在创建子类对象时,系统将首先隐含
执行父类无参数的构造函数,然后再执行子类自己的构造函数。C如果在子类自己定义的
构造函数中,利用super关键字显式的调用父类的构造函数,系统不再隐含父类的无参数的
构造函数。PS:super的显式调用语句必须是子类构造函数的第一个可执行语句。
3.如何定义数组,如何开辟数组空间?
1声明数组:声明数组主要是声明数组的名称和数组所包含的元素的数据类型或元素的类
名。数组元素类型数组名[];或数组元素类型IJ数组名;
例:intMylntArray[];
或D200_CardLJArrayOf200Card;〃类也可以当作一个基本数据类型使用
2开辟数组空间:数组名=new数组元素类型[数组元素的个数];
例:intMylntArray[J=newint[10];
D200_CardArrayOf200Card=newD200_Card[15]
4,用内部类和当前类如何实现监听者?
内部类::
PublicclassTestexTendsApplet
Buttonbt;;
Publicvoidinit(){
bt=newButton('计算');
add(bt);
bt.addActionListener(newButtonAct());
।
।
)
classButtonACTimplementsActionListener{〃内部类
Publicvoidactionperformed(ActimEvente)}
;〃bt的事件处理
当前类::
PublicclassTestextendsAppletimplementsActionListener{
Buttonbt;
।
।
Publicvoidinit()
{!
bt=newButton('计算')
add(bt);
}
PublicviodactionPerformed(ActionEvente)}
//bt的事件处理
5.有哪几种布局?每种布局的情况如何,如何使用?
1FlowLayout布局:组件在一行中从左至右水平排列,排满后折行。
A加入组件:add(组件名);
B将布局改为FlowLayout;使用SetLayout(newFlowLayout());语句。也可以使用下列两
种构造函数。
1FlowLayout(intalign,inthgap,intvgap)
Align:每行的对齐方式:LGFT,CENTER,RIGHT
Hgap:横向间距(单位是像素)
Vgap:纵向间距(单位是像素)
2FlowLayout(intalign)横纵向间距固定为5个像素。
2BorderLayout布局:组件按北南东西几个位置排列,规定各组件间的横纵距都为0;其
他都如1中使用
3GrrdLayout:以行和列的网络形式或安排组件
指定化分网格:setLayout(newGirdLayout(行数列数));加入一个空的标签:add(new
Lable())
4CardLayout:每一个组件为一个卡片容器仅显示其中一张卡片
A创造对象:MyCard=newCardLayout()
B指定布局属性:setLayoul(Mycard)
C加入组件:add(字符串,组件);
D显小:show(容器名,字符串);
此外:first(容器名):显示第一个组件
Last(容器名):显示最后一个组件
Previous(容器名):显示前一个组件
Next(容器名):显示下一个组件。
6.简述JAVA事件的处理机制
7.什么是容器组件?(Ponel与Frame的扩展)
Ponel与容器事件:Ponel属于无边框容器。Ponel是Container的子类。它是最简单的容器,
它没有边框或其他可视边界,不能被移动,放大缩小或关闭。Ponel总是作为一个容器组件
被加入列其他的容器中,Ponel也可以包含另一个PonelFrame可以作为一个Application的
最外层容器,也可以被其他容器创建并弹出成为独立的容器,Frame容器的方法有:
1getTitle()和setTitle(string)2setVisible(boolean)方法3dispose()方法
8.String类的构造函数及其使用方法
1Publicstring()
这个构造函数用来创建一个空的字符串常量
2Publicstring(Stingvalue)
利用一个已经存在的字符串常量创建一个新的String对象,该对象的内容与给出的字符串常
量一致。
3Publicstring(stringBufferbuffer)
利用一个已经存在的StringBuffer对象为新建的String对象初始化
4PublicString(charvalue[J)
利用已经存在的字符数组的内容初始化新建的string对象
Java的开发环境
(1)、bin目录:存放可执行文件。
(2)、lib目录:存放Java的类库文件。
(3)、demo目录:存放演示程序。
(4)、jre目录:存放Java运行环境变量。
配置环境:
用户变量是针对某一个用户的,而系统变量是针对整个电脑的。
要加两个路径:(1)、path加bin路径;并以分号隔开。
(2)、classpath加.;lib的路径。
Java数据类型分两个类别:
(1)、原始数据类型。
(2)、引用数据类型。
原始数据类型
Java关键字都是小写。
Byte(字节型)8-128-127
Boolean(布尔型)1true/false
引用数据类型:
(1)、数组:具有相同数据类型的变量的集合。
(2)、类:变量和方法的集合。
(3)、接口:一个抽象类,其创建目的是为了实现Java中的多重继承。
变量的作用域和生命周期
变量在作用域内为局部变量,所以在其作用域外不能使用.
作用域可以嵌套。
类型转换
1、自动类型转换:
(1)、两种类型必须兼容
(2)、目标类型大于源类型。
2、强制类型转换
3、类型提升规则
赋值运算符:
可以将单个语句中赋给多个变量。从右向左执行。
例:p=q=r=s=num.
逻辑运算符:
A:逻辑异:如两个值一样就为假.
条件运算符语法:
Expression!?expression2:expressions
Java源文件的名与公共类名•样包括大小写
源文件最多有•个公共类,源文件可以没有公共类,此时源文件名可以随意。
数组
仅声明:例:datetypeidentifier口
声明和创建:例:datatypeidentifier[]=newdatetype[sizel;
声明、创建和初始化:例:datetypeidentifier[]={value1,value2,............valueN);
命令行参数
Args.length:能得到数组的长度。
可以在命令行直接传数值给main。方法的String类型的数组args。
对象:是存在的具体实体,具有明确定义的状态和行为。
消息传递:本质上就是方法的调用(?)
消息:指•个对象为执行特定操作而向另一个对象发送的请求。
类
类:是具有相同属性和共同行为的一组对象的集合。
类的属性:对象或实体拥有的特征在类中表示时成为属性。
对象执行的操作称为方法。
类和对象的区别
类是用来描述实体的“模板”或”原型“,而对象是实际的实体。
封装
隐藏属性、方法或实现的详细信息的处理方式称为封装。
抽象
它是指只关注对象的重要细节,而忽略对象的次要细节。通过抽象简化软件的复杂性。
抽象分:(1)、数据上的抽象(2)、过程上的抽象。
将实体的相关属性和操作根据特定的应用程序进行标识和分组的过程就是数据抽象。
在Java中实现类
语法如下:
Class<classname>{
<bodyoftheclass>
)
类中的方法
语法:
<returntype><methodname>(<type1xarg1>,<type2xarg2>,){
<setofstatements>
调用方法类似于调用或引用实例变量。方法可是使用点操作符来访问。方法被调用的对象在
圆点左边,而方法的名称在圆点右边。例如:
Obj.isAvailable();
构造方法
Pixelp=newPixelQ;
Pixel():是类中的构造方法。
是new出来的东西都是引用类型。
构造方法是只要在创建给定类的实例时就调用的一个方法。它们与类同名,但不具备任何返
回类型。
构造方法的特点:(1)、跟类名相同。
⑵、没有任何返回值。
(3)、构造方法只能用new来调。
(4)、构造方法一般不只一个,就构成了重裁。
构造方法类型:(1)、参数化构造方法。
(2)、隐式/默认构造方法。
当个类未定义构造方法时,Java虚拟机(JVM)便提供•个默认构造方法,它不带任何参
数,其主体不含任何语句,这种构造方法称为隐式构造方法。类中声明构造方法,类不会再
自动添加了.
主要用途:1、包允许将类合成为较小的单元,使其易于中找到和使用相应的类文件。
2、有助于避免命令冲突。
创建包:packagepkg;
创建包前面一般加上公司的域名例如:packagecn.qingdao.slt23;
自动使用包名创建一个文件,并自动将。Class文件存放在此文件夹中。
例:javac-dc:\javaCalculate.java
导入包:importpackage_name.*;
如果使用的类是来自不同的包,且没有使用import语句导入该包,则需要在代码中指明使
用类隶属的包。方法是使用来访问中的成员。例如:
Mypackage.Calculatecalc=newmypackage.Calculate();
知识扩展:
课后作业题2、(1)、两个类建在一个文档下面执行的时候问什麽不成功?
解:不能进入包中运行类。运行的方法是在包外加包前缀运行。例:
Javaparent.child.ParentTest
(2)、用点星导进所有类问什麽出现错误?
解:是因为JAVA程序错把.JAVA源文件当成.class字节码,
而无法编译。只需把源程序提出包就可以了。
面向对象的特点:(1)>封装。(2)、继承。(3)、多态.
继承主要有点:代码的可而用性。使用关键字extends来继承类。
一个类一经定义和调试,便可以用来创建新的子类的对象中,子类Car、Ship和Plane具有
与父类相同的属性和方法。
子类构造方法
构造方法用于初始化特定类型的对象并分配内存,构造方法的名称与类名相同。创建对象时
会自动调用构造方法。类似地,子类的构造方法的名称也与子类名相同,创建子类的对象时
将调用此构造方法。需要注意的是,子类永远不会继承父类的构造方法除了构造方法之外,
父类的所有方法和属性都山子类的对象继承。创建子类的对象时,它将会包含父类的所有方
法和属性。父类的值应该正确地初始化,这一点非常重要。子类构造方法可以调用父类构造
方法。需要注意的是,父类构造方法的调用总是先于子类构造方法的调用。
另一方面,通过使用关键字super,程序员还可以从子类构造方法中调用父类中默认构造方
法或或带参数的构造方法。调用父类调用父类构造方法的语句应该为子类构造方法中的第'
个语句这是因为父类先于子类存在。例:
auper(parameter_list)orsuper();
多态性
函数不能嵌套,也就是函数内部不能出现函数。
重载方法:参数列表不同(1)、数目不同(2)、参数类型不同。(3)、参数顺序不同。
重写方法:在类体系结构中,当子类中的方法与其父类中的方法具有相同的方法时,则认为
子类中的方法重写了父类中的方法。从子类中调用重写方法时,将总是调用出项在子类中的
方法,而父类中的方法将被隐藏。
多态性:一个子类有自己的属性,又有父类的属性。这种状态叫多态性。
Super:(1)、子类的构造方法可用来调用父类的构造方法。
(2)、调用己被重写的父类的方法(可以不是第一句)。
访问修饰符
1、public(公有):类的public成员可以被该类的成员和非该类的成员访问。可应用Jr
类、方法、属性。
2、private(私有):类的private成员只能被该类的成员访问,任何非该类成员的代码不
能访问任何私有方法或变量。使用private访问修饰符的主要目的是隐藏数据。
3、protected(保护):类的protected成员可以被该类的成员以及其子类的成员访问。它还
可以被同•个包内其他类的成员访问。
4、(default):还有一种缺省(default)情况,就是类成员什么修饰符也没有的时候,只
有它本身的类和在同一个包的类里可以访问它。
位置
private
default
protected
public
同一个类
是
是
是
是
同一个包内的类
否
是
是
是
不同包内的子类
否
否
是
是
不同包并且不是子类
否
否
否
是
方法修饰符
static修饰符:方法被static后这个方法就是类的了,只能通过类调用。静态的方法只能使用
静态的东西。
方法声明为静态时具有某些限制,具体内容如下。
0它们只能调用其他静态方法。
0它们必须只访问静态数据。
0不能使用关键字this或super。
final修饰符:有时候程序员可能需要定义一个不会改变的类成员。final修饰符可应用于类、
方法和变量。
Final可用于类:不能被继承了
方法:不能重写。但它的值可以更改。
属性:变成常量。
abstract修饰符:父类中的某些方法不包含任何逻辑,并且需要由子类重写。在这种情况下,
应该使用关键字abstract来声明父类中的方法。子类提供这种abstract方法的实现细节;而
父类仅提供此方法的名称和声明,没有方法的主体。因此子类应负责重写此方法。语法为:
abstracttypemethodname(parameterlist);
只有方法没有方法体就是抽象方法。前面必须要加abstraclo类中出现了抽象方法,则该类
为抽象类。
抽象方法未必有抽象方法。抽象类不能实例化对象。
被继承的子类一般要实现所有抽象方法。抽象父类和抽象子类可以有含有方法体的方法,但
是也不能实例化,可以通过抽象子类的子类来实现抽象父类和抽象子类。
接口
所有方法都必须抽象。
接口定义和类定义类似,在Java中要定义一个接口,是通过interface关键字。接口里可以
声明一些方法和常量。语法:
publicinterfacefirstlnterface
接口的实现和使用:implements。语法:
publicclassInterfaceDemoimplementsMylnterface
创建接口时必须牢记以下几点:
0接口中的所有方法必须是public类型或默认类型。
0方法仅仅是声明
在运行时发生的错误就称为“异常”,在运行时跟踪这些异常被称为“异常处理”。
try:监控异常的程序语句包含在try块中。
catch:程序员可以捕获异常并以某种合理的方式来处理它。
throw:直接抛出异常。
throws:子句用于在方法声明中抛出异常。
finally:可以指定在程序结束之前必须执行的代码,也就是说无论是否发生异常,finally
块中的代码都将会被执行。
try(
〃被监控的代码;
}catch{
〃处理异常及打印出生成异常的原因。
}catch{
〃处理异常及打印出生成异常的原因。
}finally{
无论try/catch块内发生了什么,无论是否已引发异常,finally块都将在运行时执行。
finally子句通常用于系统资源的清理/释放,如关闭文件、关闭数据库连接等。
)
try块
catch块
finally块
无异常
异常类的层次结构。
Object
Throwable
Error
Exception
AWTError
ThreadDeath
RuntimeException
ArithmeticException
ClassNotFoundException
SQLException
NullPointerException
异常类的方法
printStackTrace():是再Exception类中定义的方法,用于显示有关异常的信息。它包含的信
息不仅波及异常的原因,还波及产生该异常的代码行。
getMessage():是在RuntimeException类中定义的方法,用于获得与异常相关的详细信息。
gelStackTrace():方法提供通过程序对prinlStackTrace。输出的堆栈帧。
如果原因不存在或未知,getCause()方法将返回错误或null的原因。
throw:例:
try(
throwNullPointerExceptionee=newNullPointerException();
}catch(NullPointerExceptione){
System.oul.println(“已捕获内部ihrowExceplion");
Throwe;
)
包装类:可以把原始数据转换成相应的类型。
各个数据类型都有相应类型的包装类。其中于与数据类型名不同的有两个
char(字符型)一Charater
int(整型)-----Integer
其中valueOf()方法用于将相应的原始数据类型转换为其相应的包装类。
Character类的各种方法:
isDigit():确定字符串是否为0~9之间的数字。
isLetter():字符是否为字母。
isLowerCase():确定是不是小写形式。
isUpperCase():大写形式。
isWhiteSpace():是否为空格或换行。
isUnicodeldentifierStrart():确定给定的字符是否为Unicode标注符的第一个有效字符。
String类
StringO:创建一个空字符串
String(Stringvalue):创建一个字符串作为指定字符串的副本。
String(char[]value):它将根据字符数组构造一个新字符串。
String(byte[lvalue):它将通过转换指定的字节数组新建一个字符串.
length():方法用于确定字符串的长度。
字符串比较可用:==和equals();
==:用于判断是不是指向同一个对象;
equals():构成两个操作数的内容是否相同。一个一个字符进行比较。
图例:
booleanequalsIgnoreCase(Stringvalue):忽略大小写形式。
intcompareTo(Stringvalue):按字母顺序比较两个字符串。如果两个字符串相等,则返回0;
如果字符串在参数字符中之前,则返回值小于0;如果字符串在参数字符中之后,则返回值
大于0;
booleanstaticWilh(Stringvalue):是不是以另一个字符串开始。
booleanendsWith(Stringvalue):判断字符串是否以另一个字符串结束。
搜索字符串
publicintindexOf(intch):搜索第一个出现的字符ch.
publicintindexOf(Stringvalue):搜索第一个出现的字符串值。
publicintlastIndexOf(intch):搜索最后—1、出现的字符ch。
publicintlastIndexOf(Stringvalue):搜索最后,,个出现的字符串值。
提取字符串
publiccharcharAt(intindex):此方法用于从指定位置提取单个字符。该位置由索引指定。
publicStringsubstring(intindex):此方法用于提取从位置索引开始的字符串部分。
publicStringsubstring(intbeginindex,intendindex);止匕方法用于提取beginindex和endindex位
置之间的字符串部分。
publicStringconcat(Stringstr):此方法用于连接两个字符串,并新建一个包含调用字符串的
String对象。
publicStringreplace(charold,charnew):此方法用于使用另一个字符替换调用字符串中一个
字符的每一处。
publicStringtrim():此方法用于返回一个前后不含任何空格的调用字符串的副本。
更改字符串中字符的大小写形式
toLowerCase()和toUpperCase。:分别将字符串转换成小写形式和大写形式。
SlringBuffer类
用于表示可以修改的字符串,只要将连接运算符(+)与字符串一起使用,就会自动创建
SlringBuffer对象。
StringBuffer类的构造方法
publicStringBuffer()保留16个字符的空间。
publicStringBuffer(intlength):设置缓存器大小。
publicStringBuffer(Stringvalue):接受字符串参数,用来设置初始内容,并在不重新分配的
情况下保留16个字符的空间。
StringBuffer类的方法
StringBufferinserl(intoffset,Strings):在指定位置插入布尔值的字符串表示。
intlength():确定StringBuffer对象的长度。d的位置上的字符。
StringtoString():转换为String形式。
StringBufferreverse():StringBuffer对象中的字符序列倒排序。
StringBufferdelete(intstart,intend):此方法将删除调用对象中从start指定的位置开始直到end
指定的位置结束。
StringBufferreplace(intstart,intend,Strings):此方法使用一组字符替换另一组字符。将用替换
字符串从start指定的位置开始替换,直到end指定的位置结束。
staticdoublesin(doublenumvalue):
String类和StringBuffer类的区别
String类并不是真的改变了字符串,而是产生了垃圾。
例如:Stringaa=newString(uabc");
aa=aa+''de";
上面会在堆中生成一个字符串“abc”,同时声明一个aa的对象放在栈中。
当进行下一步的时候就会再在堆中生成一个字符串“abcde”,同时把对象aa改指向新的字
符串,这样原先的就成了无意义的字符串了,成了系统垃圾。
而StringBuuffer中则不是这样,它是在实在在的改字符串。
Math类
此类中的所有方法都是静态的。这个类是final类,因此没有子类。可以被main方法直接调
用。
Class类
使用对象中的getClass。方法
使用类名称,通过Class的forName()方法获取Class的实例。
使用自定义ClassLoader对象加载新类.
getSuperClass。方法返I可调用对象的父类。
Object类
Object类是所有类的父类。如果用户定义的类没有扩展任何其他类,则默认为扩展自Object
类.
在这个包中,Java提供了一些实用的方法和数据结构。例如,Java提供「I期(Data)类、II历
(Calendar)类来产生和获取日期及时间,提供随机数(Random)类产生各种类型的随机数,还
提供「堆栈(Stack)、向量(Vector)、位集合(Bitset)以及哈希表(Hashtable)等类来表示相应的
数据结构
Date类(处理日期)
Java在日期类中封装了有关日期和时间的信息,用户可以通过调用相应的方法来获取系统时
间或设置日期和时间。Date类中有很多方法在JDK1.0公布后已经过时了
Date类对象表示当前日期和时间,并提供操纵日期和时间各组成部分的方法。必须将Date
对象转换为字符串,才能将期输出。
Date类的父类是:java.lang.Object;
构造方法
Date():使用当天日期创建日期。
Date(longdt):使用自1970年1月1日以后的指定毫秒数创建日期。
方法
booleanafter(Datedt):如果日期在指定日期之后,返回true。
booleanbefore(Datedt):如果日期在指定日期之前,返回true。
booleanequals(Objectobj):如果两个日期相同,返回true。
StringtoString():返回日期的格式化字符串,包括星期几。
voidsetTime(longtime):设置日期对象,以表示自1970年1月1日起的指定毫
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 上海市市辖区(2024年-2025年小学五年级语文)人教版综合练习(上学期)试卷及答案
- 上海市县(2024年-2025年小学五年级语文)人教版期中考试((上下)学期)试卷及答案
- 一年级数学(上)计算题专项练习汇编
- 苏教版四年级语文下册教案
- 卫生洁具技术规格书
- 福建省宁德市古田县2024-2025学年八年级上学期期中考试物理试题(含答案)
- 兽医用剪牙钳市场需求与消费特点分析
- 可充气薄橡胶玩具市场发展预测和趋势分析
- 剔肉刀产业规划专项研究报告
- 乐器盒市场需求与消费特点分析
- 部编版四年级语文上册课内阅读复习试题含答案全套
- 土壤学-土壤分类和调查课件
- 幼儿园课程审议制度
- 高中生物-特异性免疫(一)教学课件设计
- 英语演讲技巧与实训学习通课后章节答案期末考试题库2023年
- GB/T 42631-2023近岸海洋生态健康评价指南
- TSG特种设备安全技术规范
- 酒旅餐饮商家直播间通用话术大全10-46-16
- 中国民族民俗:白族三道茶
- 自动扶梯与自动人行道2023版自行检测规则
- TD-T 1044-2014 生产项目土地复垦验收规程
评论
0/150
提交评论