本文目錄一覽:
這道java題應該怎麼做?
Java源代碼:
public class Test {
public static void main(String[] args) {
Point p1 = new Point(4, 5);
System.out.printf(“點p坐標為(%f,%f)\n”, p1.getX(), p1.getY());
p1.setX(3);
p1.setY(4);
System.out.printf(“重置後點p坐標為(%f,%f)\n”, p1.getX(), p1.getY());
System.out.printf(“點(%f, %f)到原點的距離的平方為%f\n”, p1.getX(), p1.getY(),
p1.distance());
Point p2 = new Point(1, 2);
System.out.printf(“點(%f,%f)到點(%f,%f)的距離的平方為%f\n”, p1.getX(),
p1.getY(), p2.getX(), p2.getY(), p1.distance(p2));
}
}
class Point {
protected double x;
protected double y;
public Point(){
}
public Point(double x, double y) {
this.x = x;
this.y = y;
}
public void setX(double x) {
this.x = x;
}
public double getX() {
return this.x;
}
public void setY(double y) {
this.y = y;
}
public double getY() {
return this.y;
}
public double distance() {
return Math.pow(x, 2) + Math.pow(y, 2);
}
public double distance(Point p) {
return Math.pow(this.x – p.x, 2) + Math.pow(this.y – p.y, 2);
}
}
運行測試:
java題目,這道題用守護線程怎麼做?
守護線程需要將指定線程的setDaemon()置為true,整體代碼為:
import java.util.Random;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
System.out.println(“main線程啟動”);
//設置main線程退出監聽線程,當maim線程真正結束時,會打印該日誌
Runtime.getRuntime().addShutdownHook(new Thread(() – System.out.println(“main開始退出”)));
//設置線程1,死循環,每3秒輸出一個隨機整數
Thread thread1 = new Thread(() – {
System.out.println(“線程1啟動”);
while (true) {
Random random = new Random();
System.out.println(“線程1輸出隨機整數:[” + random.nextInt(100) + “]”);
try {
Thread.sleep(3 * 1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
});
thread1.setDaemon(true);//守護線程1
//設置線程2,監聽“Q”命令,收到命令後線程2結束
Thread thread2 = new Thread(() – {
System.out.println(“線程2啟動”);
Scanner in = new Scanner(System.in);
String command = “”;
while (!”Q”.equals(command)) {
System.out.println(“線程2等待輸入”);
command = in.nextLine();
System.out.println(“線程2輸入:[” + command + “]”);
}
System.out.println(“線程2收到終止命令,線程2已結束”);
});
thread1.start();
thread2.start();
System.out.println(“main線程結束,等待子線程結束”);
}
}
關鍵在於第23行:thread1.setDaemon(true);//守護線程1
我們分析一下我的這段代碼,main函數啟動後,會先後開始執行線程1和線程2,之後main線程結束,等待所有子線程結束後,main線程即可退出,同時關閉jvm。
我們先看一下如果線程1沒有設置為守護線程會咋樣,可以看到,線程1是一個死循環,它自己是永遠不會主動結束的,線程2則是當輸入“Q”命令後,跳出while循環,結束線程2。
運行一下沒有守護線程1的情況:
運行後,線程1一直在輸出整數,線程2收到“Q”命令後也結束了,但是線程1還是在輸出,main線程也無法停止,jvm將一直存在下去。
現在再運行守護線程1的情況:
線程2收到“Q”命令後,線程2結束,此時由於線程1被守護,main線程開始退出,之後,jvm關閉,守護線程1被自動回收。
java題目怎麼做
繼承就是父類繼承子類,關鍵字extends,繼承後子類擁有父類的屬性和方法。子類就是繼承的類,在類名後有extends關鍵字。好處:繼承可以減少代碼的重複性,提高程序的可維護性。單重繼承就是只繼承一個父類。多重繼承就是子類繼承兩個或更多父類,java的抽象類不可以多重繼承,但可以多層繼承,多層繼承就是父類還有父類。接口可以多重實現(抽象類叫繼承,接口叫實現)
2.這種說法是不正確的。因為子類不可以擁有父類的私有域和私有方法。
3.覆蓋就是在繼承父類的子類裡面寫一個與父類相同的方法。域的隱藏是指子類裡面有兩個相同的變量,其中一個繼承父類,另一個由自己定義,當子類執行繼承父類的操作時,處理的是繼承父類的對象,而當子類執行它自己的方法時,所操作的就是它自己定義的變量,而把父類的變量“隱藏”起來。重載是指在同一個類中有相同名稱的方法,但它們的返回類型或參數類型或者參數個數不同(簡單的說就是同名不同參)。
4.多態性是允許你將父對象設置成為和一個或更多的他的子對象相等的技術,賦值之後,父對象就可以根據當前賦值給它的子對象的特性以不同的方式運作(摘自“Delphi4 編程技術內幕”)。使用多態性的好處:
1).派生類的功能可以被基類的方法或引用變量所調用,這叫向後兼容,可以提高可擴充性和可維護性。
2).應用程序不必為每一個派生類編寫功能調用,只需要對抽象基類進行處理即可。大大提高程序的可復用性。
5。。。睡覺了,以後再看吧
0 1 8
更多回答(2)
華清池兵馬俑一日游兵馬俑+華清宮一…
華清池兵馬俑一日游 , 華清池兵馬俑一日游 , 贈送自助餐…
電話諮詢:兵馬俑華清池一日游報價
西安中國國際旅行社..廣告
兵馬俑一日游 參團贈送中餐+耳麥…
兵馬俑一日游 西安到兵馬俑一日游 ,兵馬俑一日游 ,西安…
中國康輝西安國際旅..廣告
為您推薦
java題目怎麼做
string a[]= new string[]
瀏覽38
這些java題怎麼做啊???
第一張圖:method1方法沒有定義返回值類型會報錯,method1方法參數m沒有定義類型會報錯,m
1 瀏覽29 2017-05-25
java題怎麼做
在哪裡學的呀,不靠譜嘛!還是到 安徽萬工 系統學習下吧!這樣能成功就業!
瀏覽37 2017-11-06
怎麼做下面的java題目?
做法如下:
請問這個Java題怎麼做?
按照題目要求編寫的Java程序如下
import java.util.Scanner;
class RadiusException extends Exception{
public RadiusException(String message){
super(message);
}
}
public class Circle{
public double area(double r) throws RadiusException{
if(r0)
throw new RadiusException(“輸入錯誤”);
else
return Math.PI*r*r;
}
public static void main(String[] args){
System.out.print(“請輸入圓的半徑r:”);
try{
Scanner sc=new Scanner(System.in);
double r=sc.nextDouble();
Circle c=new Circle();
System.out.println(“圓的面積為”+c.area(r));
sc.close();
}catch(RadiusException re){
System.out.println(re.getMessage());
}
}
}
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/251982.html