public class TestClass {
楚雄州網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、APP開(kāi)發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)公司等網(wǎng)站項(xiàng)目制作,到程序開(kāi)發(fā),運(yùn)營(yíng)維護(hù)。創(chuàng)新互聯(lián)成立與2013年到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)。
public static void main(String[] args) {
Hello hello = new Hello();
String str = hello.getInfo();
System.out.println(str);
}
}
按照題目要求編寫(xiě)的Circle類的Java程序如下(文件名Circle.java)
public class Circle{
private double radius;
Circle(){
radius=0;
}
Circle(double r){
radius=r;
}
double getRadius(){
return radius;
}
double getLength(){
return 2*Math.PI*radius;
}
double getArea(){
return Math.PI*radius*radius;
}
void disp(){
System.out.println("圓的半徑為"+getRadius());
System.out.println("圓的周長(zhǎng)為"+getLength());
System.out.println("圓的面積為"+getArea());
}
}
下面是Circle類的測(cè)試類Test(文件名Test.java 要運(yùn)行需要和Circle.java放在同一包內(nèi))
public class Test{
public static void main(String[] args){
Circle c=new Circle(2.5);
c.disp();
}
}
1.TCP服務(wù)端的程序編寫(xiě)
package test;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;
public class MyTcp{
private BufferedReader reader;
private ServerSocket serverSocket;
private Socket socket;
/**
* 創(chuàng)建服務(wù)端的程序,讀取客戶端傳來(lái)的數(shù)據(jù)
*/
void getserver(){
try {
serverSocket = new ServerSocket(8998); //實(shí)例化服務(wù)端socket
System.out.println("服務(wù)器套接字已經(jīng)創(chuàng)建成功");
while (true) {
System.out.println("等待客戶機(jī)的連接:");
socket = serverSocket.accept(); //實(shí)例化socket對(duì)象
reader = new BufferedReader(new InputStreamReader(socket.getInputStream())); //實(shí)例化BufferReader對(duì)象
getClientMessage();
}
} catch (Exception e) {
e.printStackTrace();
}
}
private void getClientMessage() {
try {
while (true) {
System.out.println("客戶機(jī)傳來(lái)的信息是:"+reader.readLine());
}
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
MyTcp myTcp = new MyTcp(); //創(chuàng)建本類對(duì)象
myTcp.getserver();
}
}
2.TCP客戶端程序編寫(xiě)
package test;
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.PrintWriter;
import java.net.Socket;
import java.nio.channels.WritableByteChannel;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.border.BevelBorder;
public class MyTcpClient extends JFrame{
private PrintWriter printWriter;
Socket socket;
private JTextField jTextField = new JTextField();
private JTextArea jTextArea = new JTextArea();
Container container;
/**
* 創(chuàng)建的Tcp客戶端程序
*/
public MyTcpClient (String title) {
super(title);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
container = this.getContentPane();
final JScrollPane jScrollPane = new JScrollPane();
jScrollPane.setBorder(new BevelBorder(BevelBorder.RAISED)); //顯示邊框
getContentPane().add(jScrollPane,BorderLayout.CENTER);
jScrollPane.setViewportView(jTextArea);
container.add(jTextField,"South"); //將文本框放在窗體下面
jTextField.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
printWriter.println(jTextField.getText()); //將文本框的信息寫(xiě)入流(為下面的輸出流寫(xiě)入信息做準(zhǔn)備)
jTextArea.append(jTextField.getText() + "\n");
jTextArea.setSelectionEnd(jTextArea.getText().length());
jTextField.setText(null);
}
});
}
private void connect() {
jTextArea.append("嘗試連接中...\n");
try {
socket = new Socket("127.0.0.1",8998);
printWriter = new PrintWriter(socket.getOutputStream(),true); //將printwriter中的信息流寫(xiě)入到套接字的輸出流傳送給服務(wù)端
jTextArea.setText("已完成連接\n\n");
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
MyTcpClient myTcpClient = new MyTcpClient("向服務(wù)器發(fā)送數(shù)據(jù)");
myTcpClient.setSize(500,200);
myTcpClient.setVisible(true);
myTcpClient.connect();
}
}
3.效果展示
1先將服務(wù)端的程序跑起來(lái)
2再將客戶端的程序跑起來(lái)
3.客戶端和服務(wù)端進(jìn)行交互
public class TestClass {
public static void main(String[] args) {
Hello hello = new Hello();
String str = hello.getInfo();
System.out.println(str);
}
}
分類: 電腦/網(wǎng)絡(luò) 程序設(shè)計(jì) 其他編程語(yǔ)言
解析:
JUnit是Java進(jìn)行單元測(cè)試的一個(gè)框架, 需要下載junit, 3.8版本和后來(lái)的4.0以后版本編寫(xiě)測(cè)試的方法略有不同,
在3.8.2中需要導(dǎo)入junit.framework.中的類, 進(jìn)行測(cè)試的類必須繼承自TestCase類, 測(cè)試方法名稱中需要含test字樣, 可以在setup和teardown函數(shù)中管理一些每個(gè)測(cè)試函數(shù)都需要的資源比如數(shù)據(jù)庫(kù)連接等,在測(cè)試函數(shù)中使用assert開(kāi)頭的函數(shù)來(lái)進(jìn)行測(cè)試代碼開(kāi)發(fā).以下是從junit文檔中摘出的范例:
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
/**
* Some simple tests.
*
*/
public class SimpleTest extends TestCase {
protected int fValue1;
protected int fValue2;
protected void setUp() {
fValue1= 2;
fValue2= 3;
}
public static Test suite() {
/*
* the type safe way
*
TestSuite suite= new TestSuite();
suite.addTest(
new SimpleTest("add") {
protected void runTest() { testAdd(); }
}
);
suite.addTest(
new SimpleTest("testDivideByZero") {
protected void runTest() { testDivideByZero(); }
}
);
return suite;
*/
/*
* the dynamic way
*/
return new TestSuite(SimpleTest.class);
}
public void testAdd() {
double result= fValue1 + fValue2;
// forced failure result == 5
assertTrue(result == 6);
}
public void testDivideByZero() {
int zero= 0;
int result= 8/zero;
result++; // avoid warning for not using result
}
public void testEquals() {
assertEquals(12, 12);
assertEquals(12L, 12L);
assertEquals(new Long(12), new Long(12));
assertEquals("Size", 12, 13);
assertEquals("Capacity", 12.0, 11.99, 0.0);
}
public static void main (String[] args) {
junit.textui.TestRunner.run(suite());
}
}
在4.0.2中的變化是:
測(cè)試需要@.junit.Test的Annotation標(biāo)記,其他部分也使用了Annotation標(biāo)記,setup和teardown使用@.junit.Before 和@.junit.After, 在eclipse3.1的環(huán)境中不支持4.0.2, 可以使用junit 4.0.2中提供的adapter類來(lái)幫助eclipse內(nèi)置的junit發(fā)現(xiàn)新版本的測(cè)試函數(shù)