《Java语言程序设计(一)》复习资料
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《Java语言程序设计(一)》
复习资料
Java语言是目前使用最为广泛的网络编程语言之一;具有面向对象;与平台无关性;多线程性;动态性等特点。
Java运算符按功能分6种,具体如下:算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符、条件运算符。
结构化程序设计有顺序、分支、循环三种基本流程;java中的分支语句包括if语句、switch 语句;循环语句包括while语句、do-while语句、for语句;其他如对象、变量定义语句、赋值语句、方法调用语句等都是顺序语句。
Java中逻辑型用boolean表示;字符型用char表示;整型共有4种分别是byte(字节型)、short(短整型)、long(长整型)、int(普通整型);浮点型共两种float和double。
创建线程可以通过继承线程类Thread创建线程类;建立一个实现Runnable接口的类来运行线程。
用abstract修饰的类不能创建对象,必须产生子类,有子类创建对象;用abstract修饰的方法只允许声明,而不允许实现;如果一个类是一个abstract类的子类,它必须实现父类的abstract方法。
在类的方法的定义之前,加上修饰字public和加上修饰字private是不同的。
Public修饰的方法为公用方法,任何类的方法都可以访问他;Private修饰的方法,本类内部可以访问。
在面向对象系统中,类是对一组相同对象的描述,类概括了同类对象的共有性质:数据和方法。
对象是类的一个实例。
一个java应用程序必须且只有一个类含有main方法,这个类称为应用程序的主类,其main方法必须被说明为public static void;一个Java Applet小应用程序不再需要main方法,但必须有一个类扩展了Applet类,即它是Applet类的主类。
"
编程语言的四个发展阶段(1)面向机器语言(2)面向过程语言(3)结构化程序设计阶段(4)面向对象编程。
代码TextArea text=new TextArea();JScrollPane jsp=new JScrollPane(text);().add(jsp);可以将文本区text放置于滚动面板jsp,并将滚动面板jsp添加到JFrame窗口myFrame的Java 语句。
多任务是针对操作系统而言的,表示操作系统可以同时执行多个程序;多线程则是针对一个程序而言的,表示一个程序内部可以同时执行多个线程。
在循环中使用break语句,将使循环终止,流程跳转到break语句所在的循环外面的第一个语句继续执行;在循环中使用continue语句,将提前结束本次循环,流程跳转到continue 语句所在循环的第一个语句继续执行。
用final修饰的类不能被继承,即不能有子类;用final修饰的方法不能被重写。
Java小应用程序播放音频文件需要用到的类的类名是AudioClip,创建对象的方法是getAudioCilp()。
package语句作为java源程序的第一条语句,指明该源文件定义的类所在的包,而import 语句作用是为了能使用java提供的类,可以使用import语句来引入所需要的类。
在JA V A中实现与后台数据库的连接可以采用二种方法:
(1)或者编写一个驱动程序接受JDBC调用,执行SQL对数据库的调用。
(2)或者使用已存在的ODBC驱动程序,用JDBC-ODBC桥将JDBC与ODBC连接起来。
用向量类的对象存储数据与用数组表示数据是有区别的:
(1)数组元素可以是任何类型的数据,向量中的元素不能是基本数据类型的数据;
(2)数组一旦用new运算符创建后,其大小不可以改变,向量对象的大小可根据元素的增加自动增加。
构造方法的名字和类名相同,且没有任何返回值,创建一个对象是执行构造方法,由系统自动调用。
创建一个File对象构造方法有:
(1)包含路径名的字符串;
(2)含有路径名的字符串和含文件名的字符串;
(3)一个代表路径的文件和一个含有文件名的字符串。
设置组件的字体和颜色的方法:
(1)设置字体:用Font类创建一个字体对象,该对象表示一种字体,通过组件对象名调用方法SetFont(Font f),即可设置组件的字体
(2)设置颜色:用Color类创建两个颜色对象,表示两种颜色,一种颜色表示组件的前景色,另一种表示背景色,通过组件对象名调用方法SetBackground(Color C)可设置组件的背景色,调用方法SetForeground(Color C)可设置组件的前景色。
MouseMotionListener接口事件的处理。
鼠标移动事件有两种:拖动鼠标和移动鼠标;产生的事件类型MouseEvent;获得监视器的方法是addMouseMotionListener();事件接口中的方法为mouseDragged(MouseEvent e);和mouseMoved(MouseEvent e)。
继承是一种由已有的类创建新类的机制;利用继承可以创建一个共有属性的一般类,根据该一般类再创建具有特殊属性的新类;新类继承一般类的状态和行为,并根据需要增加它
自己的新的状态和行为;由继承而得到的类称为子类。
菜单上的事件的处理方法:(1)单击菜单项可产生ActionEvent事件处理该事件的接口是Actionlistener;(2)接口中的方法是actionPerformed(ActionEvent e);(3)事件源获得监视器的方法是addActionListener();(4)ActionEvent获得事件源的方法是getSource()。
选择(Choice)控件上的事件处理方法:(1)选择控件的选择情况发生变化会产生HemEvent (2)处理该事件的接口是HemListener;(3)接口中的方法是ItemStateChanged(HemEvent 事件;
e);(4)事件源获得监视器的方法是addHemListener();(5)处理该事件时,如果想获得事件源可调用方法getHemSelectable()。
滚动列表(List)上的事件的处理方法。
滚动列表可产生两种事件:双击和单击某项,当双击某项时,产生ActionEvent事件,获得事件监视器的方法是addActionListener(),处理事件的接口是ActionListener;接口中的方法是ActionPerformed(ActionEvent e),获得该事件的事件源的方法是getSource();当单击某项时,产生HemEvent事件,获得事件监视器的方法是addHemListener(),处理事件的接口是HemListener;接口中的方法是itemStateChanged(HemEvent e),获得该事件的事件源的方法是getHemSelectable。
可以用套接字建立两个程序间的通信:
(1)用Socket类建立客户到服务器的套接字的对象:Socket(String host,int port)
(2)用ServerSocket建立接受客户套接字的服务器套接字对象:ServerSocket(int port)客户端与服务器端的端口号相同
(3)客户端服务器对象调用方法accept()接受客户的套接字,创建客户端套接字对象,服务器端套接字对象和调用方法accept()时都可能产生IOException,所以需对例外进行处理。
如果类的成员变量与方法中的局部变量名相同,那么可以在方法中通过this关键字调用成员变量;在构造方法中使用this调用构造方法的语句必须是该方法的第一条执行语句,且只能出现一次;只能在构造方法中使用this调用其他的构造方法。
borderlayout布局管理器将容器的矩形区域分为五个区,分别是上北下南左西右东和中部。
这五个区域每个区域最多只能放置一个组件,如果添加了多个,只有最后一个能够正确显示。
这五个区域可以选择性地使用其中几个,或者全部都使用。
不使用的区域将合并为一个,下一个组件添加进来,将占据这个合并区域。
线程的一个生命周期包括以下状态:
(1)新建(new)(2)可运行状态(Runnable)、(3)死亡(Dead)(4)阻塞(Blocked)
Java数组的内存分配。
当我们需要多个类型相同的变量的时候,就考虑定义一个数组。
在Java中,数组变量是引用类型的变量,同时因为Java是典型的静态语言,因此它的数组也是静态的,所以想要使用就必须先初始化(为数组对象的元素分配空间)。
Java语言里,数组的初始化有两种方式:
静态初始化:初始化时由程序员显式指定每个数组元素的初始值,由系统决定数组长度。
动态初始化:初始化时程序员只指定数组长度,由系统为数组元素分配初始值。
不管采用哪种方式初始化Java数组,一旦初始化完成,该数组的长度就不可改变,可以通过数组的length属性取得数组的长度。
try和catch的作用是测试系统稳定性,测试系统运行时是否会崩溃。
语法格式如下:
try
{
有可能出现错误的代码写在这里
}
catch
{
出错后的处理
}
如果try中的代码没有出错,则程序正常运行try中的内容后,不会执行catch中的内容。
如果try中的代码一旦出错,程序立即跳入catch中去执行代码,那么try中出错代码后的所有代码就不再执行了。
程序题练习
1.表示year年是闰年的Java表达式。
闰年的条件是:每4年一个闰年,但每100年少
一个闰年,每400年又增加一个闰年。
(year%4==0)&&(year%4!=0)||(year%400==0)
2.程序如下:
class StaticDemo
{
static int x;
int y;
public static int getX()
{ return x; }
public static void setX(int newX)
{ x=newX; }
public int getY()
{return y;}
public void setY(int newY)
{y=newY; }
}
public class MainDemo {
public static void main(String[] args)
{
System.out.println("静态变量x="+StaticDemo.getX());
StaticDemo a=new StaticDemo();
StaticDemo b=new StaticDemo();
a.setX(1);
a.setY(2);
b.setX(3);
b.setY(4);
System.out.println("静态变量a.x="+a.getX());
System.out.println("实例变量a.y="+a.getY());
System.out.println("静态变量a.x="+b.getX());
System.out.println("实例变量a.y="+b.getY());
}
}
程序运行结果为:
静态变量x=0
静态变量a.x=3
实例变量a.y=2
静态变量a.x=3
实例变量a.y=4
3.请写一个if语句,判断整数n是否同时满足“被3除余2,被7除余1”的条件,满足时输出“OK”,否则输出“NO”。
程序为:
if (n%3==2&&n%7==1)
System.out.print(“OK”);
else
System.out.print(“NO”);
4. 程序如下
public class ContinueTest{
public static void main( String args[])
{
char c='i';
for (int n=6; n < 11; n++ ){
if ( n == 8 ) continue;
System.out.print("\t"+(c++));
}
}
}
(1)程序的输出结果是:i j k l
(2)若将if中的continue语句替换为break语句,输出结果是:i j
5. 分析以下程序的运行结果
public class Father{
String name,address,tel;
int age;
public Father(String name,int age){
=name;this.age=age;
}
void out(){
System.out.print("姓名:"+name);
System.out.print(" 年龄:"+age);
}
void outOther(){
System.out.print(" 家庭住址:"+address);
System.out.print(" 电话:"+tel);
}
}
class Son extends Father{
String school;
public Son(String name,int age){
super(name,age);
}
void out(){
super.out();
super.outOther();
System.out.println (" 学校:"+school);
}
public static void main(String args[]){
Son son=new Son("Tom",15);
son.address="金水区";
son.school="九中";
son.tel="66123456";
son.out();
}
}
运行结果为:姓名:Tom 年龄:15 家庭住址:金水区电话:66123456 学校:九中
6. 分析以下程序。
Package test;
Public class FatherClass
{
Public FatherClass ()
{
System.out.print(“FatherClass Create”);
}
}
子类:
Package test;
Import test. FatherClass;
Public class ChildClass extends FatherClass
{
Public ChildClass()
{
System.out.println(“ChildClass Create”);
}
Public static void main(String[] args)
{
FatherClass fc = new FatherClass();
ChildClass cc = new ChildClass();
}
}
程序执行结果为:FatherClass Create
FatherClass Create
ChildClass Create
7. 分析下列程序的功能。
import java.io.File;
public class FileExercise{
public static void main(String[] args){
File fileObject = new File("Sally.txt");
if(fileObject.exists()){
System.out.println("There is a file named Sally.txt");
}else{
System.out.println("There is no file named Sally.txt");
}
}
}
该程序的功能是测试程序所在的目录是否包含一个名为Sally.txt的文件。
如果存在则输出There is a file named Sally.txt;如果不存在则输出There is no file named Sally.txt。
8. 分析以下需求,并用代码实现:
(1)定义如下方法public static String getPropertyGetMethodName(String property);
(2)该方法的参数为String类型,表示用户给定的成员变量的名字,返回值类型为String 类型,返回值为成员变量对应的get方法的名字。
(3)如:用户调用此方法时给定的参数为"name",该方法的返回值为"getName"。
代码如下:
public static void main(String[] args) {
System.out.println(getPropertyGetMethodName("lisa"));
}
public static String getPropertyGetMethodName(String property){
return "get".concat(property);
}
9. 分析以下需求,并用代码实现:
(1)定义数字字符串数组{"010","3223","666","7890987","123123"}
(2)判断该数字字符串数组中的数字字符串是否是对称(第一个数字和最后一个数字相等,第二个数字和倒数第二个数字是相等的,依次类推)的,并逐个输出
(3)如:010 是对称的,3223 是对称的,123123 不是对称的
(4)最终打印该数组中对称字符串的个数
代码如下:
public static void main(String[] args) {
judge02();
}
public static void judge02() {
String []strings={“010”,“3223”,“666”,“7890987”,“123123”};
int count=0;//count是一个计数器,把不对称的统计出来,后面就可以确定对称的
for (int i = 0; i < strings.length; i++) {
//将字符串数组中的每个字符串拿出来,在将其变成一个个字符数组,然后每个字符来比较char[] cs= strings[i].toCharArray();
for (int j = 0,k=cs.length-1; j<k; j++,k–) {
if (cs[j]-cs[k]!=0) {
System.out.println(strings[i]+“不是对称的”);
count++;
break;}
}
}
int num=strings.length-count;
System.out.println(“对称字符串的个数是”+num);}
}
10. 编写程序,实现如下功能:键盘录入一个长字符串str,再录入一个短字符串subStr,要求长字符串str中,包含多个短字符串subStr,打印出短字符串subStr在长字符串str中每次出现的索引。
程序如下:
import java.util.Scanner;
public class LastTest {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
System.out.println(“输入一个长字符串”);
String lString=scanner.next();
System.out.println(“输入一个短字符串”);
String string=scanner.next();
times(lString, string);}
public static void times(String lString,String string) {
int index=0;
while (index<lString.length()) {
index=lString.indexOf(string,index);
System.out.println(index);
index++;}。