java考试题型及要点演示教学Word文档下载推荐.docx
《java考试题型及要点演示教学Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《java考试题型及要点演示教学Word文档下载推荐.docx(14页珍藏版)》请在冰豆网上搜索。
y的值是?
y值为1
5、利用Scanner类输入
(1)导入util包。
例如:
importjava.util.*;
(2)创建Scanner类对象引用。
Scanners=newScanner(System.in);
(3)获得键盘输入的数据,可以调用nextXXX()方法。
获得整型数据,使用nextInt();
获得双精度浮点数据,使用nextDouble();
获得一字符串,使用nextLine()。
例如inta=s.nextInt();
P29例2-3
6、程序流程控制
顺序结构、选择结构(if()…;
if()…else…;
switch()casen:
…;
[default:
])、循环结构(while(){…};
do{…}while();
for(;
;
)…)
P49例2-20、P60例2-29
7、数组
一维数组的声明与创建
声明:
类型数组名[];
或类型[]数组名;
创建:
数组名=new类型[数组长度];
也可以声明与创建合并:
类型数组名[]=new类型[数组长度];
注意等号左边的中括号中不要写出数组长度
也可以声明数组的同时进行初始化赋值,例如:
inta[]={1,2,3,4,5};
注意大括号仅在数组声明后给值的情况。
inta[];
a={1,2,3,4,5};
这种用法是不对的。
8、方法的重载
在一个类中可以定义多个同名的方法,但要求各方法具有不同的参数类型或参数个数。
方法重载通常用于创建完成一组任务相似但参数不同的方法。
第3章类与对象
1、类的定义
[类的修饰符]class类名[extends父类名]//中括号表示可以省略
{
成员变量的定义
成员方法的定义
}
2、构造方法
构造方法是类中一种特殊的方法,主要用于初始化类对象实体。
类的构造方法的名字必须与它所在类的名字完全相同,而且没有类型。
允许一个类中编写若干个构造方法,但必须保证它们的参数不同,参数不同是指:
参数的个数不同,或参数个数相同,但参数列表中对应的某个参数的类型不同。
3、类对象的创建
(1)分2步:
先声明,后创建。
类名引用变量名;
引用变量名=new构造方法(实际参数);
构造方法中的实际参数取决于构造方法定义给定的形式参数
(2)1步:
类名引用变量名=new构造方法(实际参数);
4、综合(实验报告二(4))
学生类的创建和使用
①创建一个学Student类,成员变量包括:
学号、姓名、性别、年龄等,且都是private类型。
②声明一个构造方法,初始化所有成员变量。
③分别声明获得各属性的public成员方法,方法名要求以get开头。
④分别声明修改各属性的public成员方法,方法名要求以set开头。
⑤声明一个public类型的toString()方法,把该类中的所有域信息组合成一个字符串。
⑥声明统计创建Student对象的个数的私有域count和得到Student对象的个数的public方法。
主方法测试类功能(2种,任取一种)
编写测试类Test,在主类中,创建2个Student对象,输出对象的所有域信息;
修改对象的姓名和年龄,输出修改后的姓名和年龄;
比较两个Student对象的年龄的大小,输出年龄较大的Student对象。
在Student类中编写主方法,创建2个Student对象,输出对象的所有域信息;
packageStudent;
publicclassStudent{
privateStringid;
privateStringname;
privateintage;
privateStringgender;
privatestaticintcount=0;
publicStudent(Stringid,Stringname,Stringgender,intage){
this.id=id;
this.name=name;
this.age=age;
this.gender=gender;
count++;
}
publicstaticintgetCount(){
returncount;
}
publicStringgetId(){
returnid;
publicStringgetName(){
returnname;
publicStringgetGender(){
returngender;
publicintgetAge(){
returnage;
publicvoidsetId(Stringa){
id=a;
publicvoidsetName(Stringc){
name=c;
publicvoidsetGender(Stringd){
gender=d;
publicvoidsetAge(inte){
age=e;
publicStringtoString(){
return"
学号:
"
+this.id+"
\t姓名:
"
+this.name+"
\t性别:
+this.gender+"
\t年龄:
+this.age;
publicstaticvoidmain(String[]args){
Students1=newStudent("
0001"
"
张三"
男"
16);
Students2=newStudent("
0002"
李四"
女"
18);
System.out.println(s1.toString());
System.out.println(s2.toString());
System.out.println("
创建的学生总数为:
+Student.getCount());
s1.setName("
王五"
);
s1.setAge(17);
s2.setName("
陆陆"
s2.setAge(19);
if(s1.getAge()>
s2.getAge())
System.out.println("
年龄较大的人的信息:
+s1.toString());
else
+s2.toString());
}
publicclassTest{
publicstaticvoidmain(String[]args){
第4章继承
Java不支持类的多重继承,继承关键字extends,参见第三章类的定义。
第5章抽象、接口
1、抽象类
abstractclass抽象类名称
{
成员变量声明;
abstract方法();
//仅有方法头,没有方法体
非抽象方法()//有方法头,有方法体
{}
注意:
不可用抽象类构造方法创建对象。
2、接口
[访问修饰符]interface接口名[extends父接口名列表]
接口成员定义
接口成员有3种:
a.常量(接口中的成员量都是常量,可以省略public、static、final关键字)b.接口中的方法都是抽象方法(接口中一般省略了public、abstract关键字)c.嵌套类和嵌套接口
类通过实现(implements)接口来发挥接口的功能,如果该类是非抽象类,那就必须重写接口中的所有方法。
接口和抽象类有些相似,区别在于
(1)接口可以多继承,而类只允许单继承;
(2)抽象类可以有部分实现,可以有静态方法等;
而接口不允许有任何实现。
第6章异常
在程序执行期间,可能会有许多意外的事件发生。
Java把这些意外的事件成为“异常”。
对发生的异常,进行处理,将使程序更加清晰、健壮、容错能力强。
异常处理的方式:
(1)try-catch-finally语句
(2)使用throw语句直接抛出异常或使用throws语句间接抛出异常。
第7章文件管理与输入/输出
Java支持两种类型的流:
字节流和字符流。
字节流由抽象类InputStream和OutputStream的子类实现。
字符流由抽象类Reader和Writer的子类实现。
第8章线程
1、线程的概念
线程是比进程更小的执行单位,一个进程在其执行过程中,可以产生多个线程,形成多条执行线索,每条线索,即每个线程也有它自身的产生、存在和消亡的过程。
2、线程的生命周期
(1)新建
a.一个用Thread类或其子类的对象被声明并创建
b.一个用实现了Runnable接口的类创建的
(2)运行
线程调用start()方法。
JVM会知道又有一个新线程排队等候切换了,当JVM将CPU使用权切换给线程时,该类中的run()方法就立刻执行,run()方法规定了该线程的具体使命。
(3)中断
有4种中断原因:
a.JVM将CPU资源从当前线程切换给其他线程,使本线程让出CPU的使用权。
b.线程使用CPU资源期间,执行了sleep(intmillsecond)方法,使当前线程进入休眠状态。
经过参数指定的毫秒数后,该线程重新进到线程队列排队等待CPU资源,该方法可能会引起InterruptedException异常。
c.线程使用CPU资源期间,执行了wait()方法,使得当前线程进入等待状态。
等待状态线程不会主动进到线程队列中排队等待CPU资源,必须由其他线程调用notify()或notifyall()方法通知它,使得它重新排队等待CPU资源。
d.线程使用CPU资源期间,执行某个操作进入阻塞状态,比如执行读/写操作引起阻塞。
只有当引起阻塞的原因消除时,线程才重新进到线程队列中排队等待CPU资源。
(4)死亡
死亡原因有二种:
a.执行完run()方法中的全部语句;
b.被提前强制性终止run()方法。
所谓死亡状态就是线程释放了实体,即释放分配给线程对象的内存。
P162方式一:
继承Thread类
P163方式二:
实现Runnable接口
第9章图形用户界面设计
1、组件和容器
组件是图形用户界面的基本部分,比如一个按钮,一个标签等
容器用于包含组件和容器,可以通过add(组件或容器)方法添加括号中的参数到当前容器。
2、布局管理
常用布局
a.FlowLayout该布局的特点:
将各个组件按add方法顺序地添加到容器,组件按照从左向右,第一行排满后排第二行,每行中组件都居中排列。
是JPanel型容器的默认布局。
b.BorderLayout如果一个容器使用这种布局,那么容器空间简单的划分为东、西、南、北、中五个区域,中间的区域最大。
每加入一个组件都应该指明这个组件加在哪个区域中,区域由BorderLayout的静态常量CENTER、NORTH、SOUTH、WEST、EAST表示
c.CardLayout使用CardLayout的容器可以容纳多个组件,这些组件被层叠放入容器中,最先加入容器的是第一张(最上面),依次向下排序。
使用该布局的特点是,同一时刻容器只能从这个组件中选出一个来显示,这个被显示的组件将占据所有的容器空间。
d.GridLayout其基本布局策略是把容器划分成若干行乘若干列的网格区域,组件就由add()方法添加顺序依次从第一行第一列、第一行第二列……被填充到这些划分出来的小格中。
3、事件处理模型
编写代码时注意以下三点:
(1)确定事件源
(2)事件源.addXXXListener(实现事件监听接口类对象引用)
(3)事件监听接口相应的事件处理方法重写
4、创建窗口有2种方法
a.在主类中创建JFrame类对象引用,再创建各组件并添加到窗口。
b.创建JFrame类的子类
窗口中有三个组件,依次是:
标签(JLabel)、文本框(JTextField)、按钮(JButton)。
现在在文本框中输入字符,单击“确定”按钮后,标签就显示为文本框中的内容。
如图1所示,点击“确定”按钮后,如图2所示
图1初始状态
图2点击按钮后
方法一:
在主类中创建JFrame类对象引用,再创建各组件并添加到窗口
importjavax.swing.*;
//JFrame\JLabel\JTextField\JButton类所在包
importjava.awt.*;
//常用布局类所在包
importjava.awt.event.*;
//事件处理
publicclassTestJFrame{
privatestaticJFramemyframe=newJFrame();
//创建窗口类对象,作为该类成员变量,注意是static
privatestaticJLabelmylabel=newJLabel("
abcdefg"
//创建标签类对象,作为该类成员变量,注意是static
privatestaticJTextFieldmytxt=newJTextField(18);
//创建文本框类对象,作为该类成员变量,注意是static
privatestaticJButtonmybtn=newJButton("
确定"
//创建按钮类对象,作为该类成员变量,注意是static
publicstaticvoidmain(String[]args){
myframe.setTitle("
Example"
//为窗口设置标题
myframe.setLayout(newFlowLayout());
//为窗口设置布局,这里采用的是流式布局
myframe.add(mylabel);
//为窗口添加标签组件
myframe.add(mytxt);
//为窗口添加文本框组件
myframe.add(mybtn);
//为窗口添加按钮组件
mybtn.addActionListener(newActionListener(){//按钮组件作为事件源,添加动作事件监听器,并用匿名内部类作为事件监听器对象
publicvoidactionPerformed(ActionEvente)//动作事件处理方法
{
mylabel.setText(mytxt.getText());
}
});
myframe.setSize(500,200);
//为窗口设置大小
myframe.setVisible(true);
//窗口设置为可见
myframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
方法二:
创建JFrame类的子类
//JFrame\JLabel\JTextField\JButton类所在包
classMyFrameextendsJFrameimplementsActionListener//继承了JFrame类,同时实现了ActionListener接口
JLabell;
JTextFieldtf;
JButtonbtn;
MyFrame()
{
super("
//调用父类构造方法,传递参数,实现设置标题
l=newJLabel("
abcdefgh"
tf=newJTextField(18);
btn=newJButton("
add(l);
add(tf);
add(btn);
btn.addActionListener(this);
//由于本类实现了ActionListener接口,所以本类对象可以作为监听器对象
setLayout(newFlowLayout());
setVisible(true);
setBounds(50,50,500,200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
publicvoidactionPerformed(ActionEvente)//重写ActionListener接口中actionPerformed方法,实现事件处理
l.setText(tf.getText());
publicclassTestJFrame2{//测试类
newMyFrame();