Java習題——方法與構造方法練習(一)
【練習題】01.類的成員變數:
設計一個立方體類Box,定義三個屬性,分別是長,寬,高。定義二個方法,分別計算並輸出立方體的體積和表面積
//設計一個立方體類Box,定義三個屬性,分別是長,寬,高。定義二個方法,分別計算並輸出立方體的體積和表面積 package cn.edu.nefu1; import java.util.Scanner; public class Box { double length; double width; double height; //求體積 double volume(double length,double width,double height){ return length*width*height; } //求表面積 double area(double length,double width,double height){ return 2*(length*width+length*height+width*height); } public static void main(String[] args) { Box box = new Box(); //例項化一個物件 System.out.println("請輸入該立方體的長、寬、高:"); Scanner sc = new Scanner(System.in); box.length = sc.nextDouble(); box.width = sc.nextDouble(); box.height = sc.nextDouble(); System.out.println("立方體的體積為:"+box.volume(box.length,box.width,box.height)); //呼叫方法 System.out.println("立方體的表面積為:"+box.area(box.length,box.width,box.height)); } }
【練習題】02.類的成員變數:
請定義一個交通工具(Vehicle)的類,其中有:
屬性:速度(speed),距離(distance)等等
方法:移動(move(int s)),設定速度(setSpeed(int speed)),加速speedUp(),減速speedDown()等等.
最後在測試類Vehicle中的main()中例項化一個交通工具物件,並通過方法給它初始化speed, distance的值,並且通過打印出來。另外,呼叫加速,減速的方法對速度進行改變。呼叫 move方法改變distance,並輸出已經移動的距離
//請定義一個交通工具(Vehicle)的類,其中有: // 屬性:速度(speed),距離(distance)等等 // 方法:移動(move(int s)),設定速度(setSpeed(int speed)),加速speedUp(),減速speedDown()等等. // 最後在測試類Vehicle中的main()中例項化一個交通工具物件,並通過方法給它初始化speed, distance的值, // 並且通過打印出來。另外,呼叫加速,減速的方法對速度進行改變。呼叫 move方法改變distance,並輸出已經移動的距離 package cn.edu.nefu1; public class Vehicle { int speed; int distance; //構造方法 Vehicle(int speed,int distance){ this.distance = distance; this.speed = speed; } //移動 void move(int s){ distance += s; System.out.println("此時距離為:"+distance); } //設定速度 void setSpeed(int speed){ System.out.println("此時速度為"+speed); } //加速 void speedUp(){ speed += 1; System.out.println("此時速度為"+speed); } //減速 void speedDown(){ speed -= 1; System.out.println("此時速度為"+speed); } public static void main(String[] args) { Vehicle car = new Vehicle(20,100);//例項化一個物件 car.move(100); car.setSpeed(20); car.speedDown(); car.speedUp(); car.speedUp(); } }
【練習題】03.類的成員變數與方法
定義一個Hero類
屬性有 power,name,分別代表體力值和英雄的名子,體力值預設為100;
方法有
1.void go(); //行走的方法,如果體力值為0,則輸出不能行走,此英雄已死亡的資訊
2.void eat(int n); //吃的方法,引數是補充的血量,將 n的值加到屬性power中,power的值最大為100,
3.void hurt();//每受到一次傷害,體力值-10,體力值最小不能小於0
編寫測試類,來測試以上程式碼
/*定義一個Hero類 屬性有 power,name,分別代表體力值和英雄的名子,體力值預設為100; 方法有 1.void go(); //行走的方法,如果體力值為0,則輸出不能行走,此英雄已死亡的資訊 2.void eat(int n); //吃的方法,引數是補充的血量,將 n的值加到屬性power中,power的值最大為100, 3.void hurt();//每受到一次傷害,體力值-10,體力值最小不能小於0 編寫測試類,來測試以上程式碼*/ package cn.edu.nefu1; public class Hero { int power=100; String name; //行走 void go(){ if(power == 0){ System.out.println("不能行走,英雄"+name+"已死亡。"); }else { System.out.println("英雄"+name+"向前行走。"); } } //吃 void eat(int n){ power += n; if(power >= 100){ power = 100; } System.out.println("英雄"+name+"血量為:"+power); } //傷害 void hurt(){ power -=10; if(power < 0){ power = 0; } System.out.println("英雄"+name+"血量為:"+power); } }
package cn.edu.nefu1;
import java.util.Scanner;
public class HeroTest {
public static void main(String[] args) {
Hero hero = new Hero();
Scanner sc = new Scanner(System.in);
System.out.println("請輸入英雄的名字:");
hero.name = sc.nextLine();
hero.go();
hero.hurt();
hero.hurt();
hero.hurt();
hero.hurt();
hero.go();
hero.eat(80);
}
}
【練習題】04.方法的引數及返回值
定義一個計算器;它的功能有
加,減,乘,除,累加,階乘
求平方,求次方,判斷一個數是否為素數;boolean(int),並寫測試類來測試這個方法
/*定義一個計算器;它的功能有
加,減,乘,除,累加,階乘
求平方,求次方,判斷一個數是否為素數;boolean(int),並寫測試類來測試這個方法*/
package cn.edu.nefu1;
public class Calculator {
//加
void add(double a,double b){
System.out.println("兩個數的和為:"+(a+b));
}
//減
void minus(double a,double b){
System.out.println("兩個數的差為:"+(a-b));
}
//乘
void multiply(double a,double b){
System.out.println("兩個數的積為:"+(a*b));
}
//除
void divide(double a,double b){
System.out.println("兩個數的商為:"+(a/b));
}
//累加
void accumulate(int n){
int sum = 0;
for (int i = 1; i <= n; i++) {
sum += i;
}
System.out.println("累加結果為:"+sum);
}
//階乘
void factioral(int n){
int sum = 1;
for (int i = 1; i <= n; i++) {
sum *= i;
}
System.out.println(n+"的階乘為:"+sum);
}
//平方
void square(double a){
System.out.println(a+"的平方為:"+a*a);
}
//次方 a的n次冪
void power(double a,int n){
int sum = 1;
for (int i = 1; i <= n; i++) {
sum *= a;
}
System.out.println(a+"的"+n+"次冪為:"+sum);
}
//判斷是否為素數
void isPrimeNumber(int n){
boolean isPrime = true;
if(n == 2){
System.out.println(n+"是素數");
}else {
for (int i = 2; i < n; i++) {
if (n % i == 0) {
isPrime = false;
}
}
if (isPrime == true) {
System.out.println(n+"是素數");
} else {
System.out.println(n+"不是素數");
}
}
}
}
package cn.edu.nefu1;
//測試類
public class CalculatorTest {
public static void main(String[] args) {
Calculator calculator = new Calculator();
calculator.add(4,5);
calculator.minus(4,5);
calculator.multiply(4,5);
calculator.divide(4,5);
calculator.accumulate(4);
calculator.factioral(4);
calculator.power(4,5);
calculator.square(4);
calculator.isPrimeNumber(5);
}
}
【練習題】05.構造方法:
編寫Java程式,用於顯示人的姓名和年齡。
定義一個人類(Person),該類中應該有兩個私有屬性,姓名(name)和年齡(age)。定義構造方法,用來初始化資料成員。再定義顯示(display)方法,將姓名和年齡打印出來。
在main方法中建立人類的例項,然後將資訊顯示。
/*編寫Java程式,用於顯示人的姓名和年齡。
定義一個人類(Person),該類中應該有兩個私有屬性,姓名(name)和年齡(age)。定義構造方法,用來初始化資料成員。
再定義顯示(display)方法,將姓名和年齡打印出來。
在main方法中建立人類的例項,然後將資訊顯示。*/
package cn.edu.nefu1;
public class Person {
String name;
int age;
//構造方法
Person(String name,int age){
this.age = age;
this.name = name;
display();
}
//顯示方法
void display(){
System.out.println(name+"的年齡是:"+age);
}
//主方法
public static void main(String[] args) {
Person person1 = new Person("李明",20);
Person person2 = new Person("洪宇",23);
}
}
【練習題】06.get方法和set方法
定義一個類,該類有一個成員變數,通過構造方法將其進行賦初值,並提供該成員的getXXX()和setXXX()方法
提示:假設有String name;則有
public void setName(String name){
this.name = name;
}
public String getName(){
return this.name;
}
/*定義一個類,該類有一個成員變數,通過構造方法將其進行賦初值,並提供該成員的getXXX()和setXXX()方法
提示:假設有String name;則有
public void setName(String name){
this.name = name;
}
public String getName(){
return this.name;
}*/
package cn.edu.nefu1;
public class GetSet {
String name;
GetSet(String name){
this.name = name;
}
GetSet(){
}
public void setName(String name){
this.name = name;
}
public String getName(){
return this.name;
}
public static void main(String[] args) {
GetSet per = new GetSet("楊洋");
System.out.println(per.getName());
per.setName("黃渤");
System.out.println(per.getName());
}
}