一.填空
1.在一个java源程序中定义了3个类和15个方法,编译该Java源文件时,会产生个字节码文件,其扩展名是class。
2.创建类的关键字是public class.
3. 类包声明的关键字是package.
4.引用类包的关键字是import.
5.声明接口的关键字是interface.
6.继承的关键字是extends.
7.返回变量的值的关键字是return.
8.声明虚拟类的关键字是abstract.
9.在Java语言中,逻辑常量只有true false两个值。
10.i为整型变量且赋值为11,表达式
int a=i++
则a的值为12。
11.面向对象的软件开发方法用把数据和基于数据的操作封装在一起。
12.构造方法的方法名必须与类名相同。
13.如果子类中的某个方法的名字、和与它的父类中的某个方法完全一样,则称子类中的这个方法覆盖了父类的同名方法。
14.同一个类中多个方法具有相同的方法名,不同的,称为方法的重载。
15.Java异常处理中可能够抛出异常的代码是放在try块中,处理代码是放在catch块中。
2.百度百科搜索很详细
3.附件中的代码仅供参考
TcpSocketServerDemo.java
package yaoshun.InetAddressimport java.io.DataInputStream
import java.io.DataOutputStream
import java.io.IOException
import java.net.ServerSocket
import java.net.Socket
import java.util.ArrayList
import java.util.List
import java.util.Random
/*
*/
public class TcpSocketServerDemo {
private ServerSocket serverSocket// 服务器连接
private int port // 服务器监听端口
private List<Socket> sockets
private int ranNumber
/**
* 服务器结束的标志
*/
public boolean ISEND
public TcpSocketServerDemo(int port) {
this.port = port
serverSocket = null
sockets = new ArrayList<Socket>()
ranNumber = new Random().nextInt(50)
}
/*
* 启动服务器
*/
public void starServer() {
try {
// 第一步:建立服务器连接(绑定监听端口)
serverSocket = new ServerSocket(port)
System.out.println("姚舜的服务器已经启动...")
Socket socket// 客户端连接(如果建立连接时,本机网络不容或服务器程序未启动则会抛出异常)
ServerThread serverThread
Thread t2
while (!ISEND) {
// 第二步:监听端口(获取客户端连接)
socket = serverSocket.accept()
if (ISEND) {
while (!socket.isClosed()) {
socket.close()
Thread.sleep(100)
}
} else {
sockets.add(socket)
serverThread = new ServerThread(this, socket)
t2 = new Thread(serverThread)
t2.start()
}
}
for (Socket s : sockets) {
s.close()
}
serverSocket.close()
} catch (Exception e) {
e.printStackTrace()
}
}
public static void main(String[] args) {
TcpSocketServerDemo tDemo = new TcpSocketServerDemo(1000)
tDemo.starServer()
}
/**
* 校验
*
* @param i
* @return
*/
public int check(int i) {
if (i < ranNumber) {
return -1
} else if (i > ranNumber) {
return 1
}
return 0
}
}
/**
* 服务端处理线程
*
*/
class ServerThread implements Runnable {
private TcpSocketServerDemo tDemo
private Socket socket
private DataInputStream dis// 输入流(读取数据)
private DataOutputStream dos// 输出流(发送数据)
public ServerThread(TcpSocketServerDemo tDemo, Socket socket) {
super()
this.tDemo = tDemo
this.socket = socket
try {
dis = new DataInputStream(socket.getInputStream())
dos = new DataOutputStream(socket.getOutputStream())
} catch (IOException e) {
e.printStackTrace()
}
}
public void run() {
String message = ""
int i
int index = 0
int result = 0
while (!message.equals("Quit") && index < 5) {
try {
message = dis.readUTF()
} catch (IOException e) {
e.printStackTrace()
}
try {
i = Integer.parseInt(message)
result = tDemo.check(i)
if (result == 1) {
dos.writeUTF("数字大了")
} else if (result == -1) {
dos.writeUTF("数字小了")
}
if (result == 0) {
dos.writeUTF("猜中了")
break
}
} catch (NumberFormatException | IOException e) {
continue
}
index++
}
try {
dis.close()
dos.close()
socket.close()
} catch (IOException e) {
e.printStackTrace()
}
}
}
TcpSocketClientDemo.java
package yaoshun.InetAddressimport java.io.DataInputStream
import java.io.DataOutputStream
import java.io.IOException
import java.net.Socket
import java.net.UnknownHostException
import java.util.Scanner
/*
* 演示类:TCP客户端
*/
public class TcpSocketClientDemo {
private Socket socket// 客户端连接(如果建立连接时,本机网络不容或服务器程序未启动则会抛出异常)
private DataInputStream dis// 输入流(读取数据)
private DataOutputStream dos// 输出流(发送数据)
// private String serverIP// 服务器IP地址
// private int serverPort// 服务器监听端口
private String sendData// 发送的数据
public TcpSocketClientDemo(String serverIP, int serverPort) throws UnknownHostException, IOException {
// this.serverIP = serverIP
// this.serverPort = serverPort
socket = new Socket(serverIP, serverPort)
dis = new DataInputStream(socket.getInputStream())
dos = new DataOutputStream(socket.getOutputStream())
sendData = null
startClient()
}
public void startClient() {
try {
// 第一步:创建客户端连接
System.out.println("===我的客户端界面===")
// 第二步:客户端向服务器发送数据
int i = 0
Scanner input = new Scanner(System.in)
while (i < 5) {
System.out.println("请输入你的内容(客户端的):")
sendData = input.nextLine()
if (sendData.equals("quit")) {
break
}
dos.writeUTF(sendData)
sendData = dis.readUTF()
System.out.println("接收到服务器内容:" + sendData)
if (i == 5) {
System.out.println("超过允许次数,请重新连接服务器.")
}
if (sendData.equals("猜中了")) {
i = 5
}
i++
}
input.close()
} catch (Exception e) {
e.printStackTrace()
} finally {
// 第四步:关闭输入流、输出流和客户端连接
try {
dis.close()
dos.close()
socket.close()
} catch (Exception e) {
e.printStackTrace()
}
}
}
public static void main(String[] args) {
try {
new TcpSocketClientDemo("127.0.0.1", 1000)
} catch (IOException e) {
e.printStackTrace()
}
}
}