JAVA语言程序设计课后习题----第四单元解析(仅供参考)

1  本题水题,主要理解题目的意思即可,访问方法和修改方法可以通过快捷方式alt+insert选中你需要的成员变量即可

 1 public class Person {
 2     public String name;
 3     public int age;
 4     public static void main(String[] args) {
 5 //        new一个对象,对象名是person
 6         Person person =new Person();
 7 //        给name变量赋值
 8         person.setName("zzy");
 9 //        给age变量赋值
10         person.setAge(21);
11 //        对象的引用
12         person.speak();
13     }
14
15     public String getName() {
16         return name;
17     }
18
19     public void setName(String name) {
20         this.name = name;
21     }
22
23     public int getAge() {
24         return age;
25     }
26
27     public void setAge(int age) {
28         this.age = age;
29     }
30
31   public void speak() {
32       System.out.println(getName());
33       System.out.println(getAge());
34   }
35 }

2  本题水题,跟着题目的意思写出需求即可,注意的是在无参的构造函数调用有参的构造函数的方法,本题的centerX与centerY没有用到

 1 public class Circle {
 2     public double centerX,centerY,radius;
 3     public static void main(String[] args) {
 4         System.out.println("调用带参数的构造函数圆的各种数据:");
 5         Circle circle=new Circle(1.0);
 6         System.out.println("圆的半径:"+circle.getRadius());
 7         System.out.println("圆的面积:"+circle.getRrea());
 8         System.out.println("圆的周长:"+circle.getPerimeter());
 9         System.out.println("调用不带参数的构造函数圆的各种数据:");
10         Circle circle1=new Circle();
11         System.out.println("圆的半径:"+circle1.getRadius());
12         System.out.println("圆的面积:"+circle1.getRrea());
13         System.out.println("圆的周长:"+circle1.getPerimeter());
14
15
16     }
17 //访问
18     public double getRadius() {
19         return radius;
20     }
21
22     public void setRadius(double radius) {
23         this.radius = radius;
24     }
25     public double getRrea(){
26         return (Math.PI*radius*radius);
27     }
28     public double getPerimeter(){
29         return 2*Math.PI;
30     }
31
32     public Circle(double radius) {
33         this.radius = radius;
34     }
35     public Circle() {
36 //      注意在无参的构造函数中调用有参的构造函数要用this
37 //        具体在书本71详解
38         this(1.0);
39     }
40 }

3  本题水题,注意在无参的构造函数调用有参的构造函数的方法

 1 public class Rectangle {
 2     public double length,width;
 3
 4     public static void main(String[] args) {
 5         Rectangle rectangle =new Rectangle(1.0,1.0);
 6         System.out.println("定义带参数的构造函数矩形:");
 7         System.out.println("长方形的长为:"+rectangle.getLength());
 8         System.out.println("长方形的宽为:"+rectangle.getWidth());
 9         System.out.println("长方形的面积为:"+rectangle.getArea());
10         System.out.println("长方形的周长为:"+rectangle.getPerimeter());
11         System.out.println("定义不带参数的构造函数矩形");
12         Rectangle rectangle1 =new Rectangle();
13
14         System.out.println("长方形的长为:"+rectangle1.getLength());
15         System.out.println("长方形的宽为:"+rectangle1.getWidth());
16         System.out.println("长方形的面积为:"+rectangle1.getArea());
17         System.out.println("长方形的周长为:"+rectangle1.getPerimeter());
18
19     }
20 //          有参的构造方法
21     public Rectangle(double length, double width) {
22         this.length = length;
23         this.width = width;
24     }
25 //    无参的构造方法
26 public Rectangle(){
27         this(1.0,1.0);
28 }
29
30     public double getLength() {
31         return length;
32     }
33
34     public void setLength(double length) {
35         this.length = length;
36     }
37
38     public double getWidth() {
39         return width;
40     }
41
42     public void setWidth(double width) {
43         this.width = width;
44     }
45 //    矩形的周长
46     public double getPerimeter(){
47         return 2*(length+width);
48     }
49 //    矩形的面积
50     public double getArea(){
51         return length*width;
52     }
53 }

4  本题水题,主要是加深对构造方法的使用

 1 public class Triangle {
 2     public double a,b,c,s;
 3
 4     public static void main(String[] args) {
 5         Triangle triangle = new Triangle(3,4,5);
 6         System.out.println("调用带三个参数的构造函数:");
 7         System.out.println("三角形的面积为:"+triangle.area());
 8         System.out.println("调用默认构造函数:");
 9         Triangle triangle1 =new Triangle();
10         System.out.println("三角形的面积为:"+triangle1.area());
11
12     }
13 //    有参的构造方法
14     public Triangle(double a, double b, double c) {
15         this.a = a;
16         this.b = b;
17         this.c = c;
18         s=(a+b+c)/2;
19     }
20 //    无参的构造方法
21     public Triangle() {
22         this.a = 0.0;
23         this.b = 0.0;
24         this.c = 0.0;
25         s=(a+b+c)/2;
26     }
27 //    三角形的面积
28     public double area(){
29         return Math.sqrt(s*(s-a)*(s-b)*(s-c));
30     }
31 }

5  本题主要是加深对访问方法与修改方法的使用

 1 public class Stock {
 2     public String symbol,name;
 3     public double perviousPrice,currentPrice;
 4
 5     public static void main(String[] args) {
 6         Stock stock =new Stock("600000","浦发银行");
 7         stock.setPerviousPrice(25.5);
 8         stock.setCurrentPrice(28.6);
 9         System.out.print("代号为:"+stock.symbol+"的"+stock.name);
10         System.out.print("当前的市值变化百分比为:"+String.format("%.1f",stock.getChangPercent()));
11
12     }
13 //    返回从当前一日价格到当前价格变换的百分比
14     public double getChangPercent(){
15         return getCurrentPrice()-getPerviousPrice();
16     }
17 //     有参的构造方法
18     public Stock(String symbol, String name) {
19         this.symbol = symbol;
20         this.name = name;
21     }
22 //      返回储存股票的前一日收盘价
23     public double getPerviousPrice() {
24         return perviousPrice;
25     }
26 //      设置储存股票的前一日收盘价
27     public void setPerviousPrice(double perviousPrice) {
28         this.perviousPrice = perviousPrice;
29     }
30 //      返回存储股票的当前价格
31     public double getCurrentPrice() {
32         return currentPrice;
33     }
34 //      设置存储股票的当前价格
35     public void setCurrentPrice(double currentPrice) {
36         this.currentPrice = currentPrice;
37     }
38 }

6  Fibonacci数就是第一项第二项都是1从第三项开始是前两项之和,可以通过调用方法来实现,里面用if else语句

 1 public class Fibonacci {
 2 //    调用方法
 3     public static long fib(int n){
 4 //        如果n==1或者2就返回1
 5         if(n==1||n==2)
 6             return 1;
 7         else
 8             return fib(n-2)+fib(n-1);
 9     }
10     public static void main(String[] args) {
11         for (int i = 1; i <= 20; i++) {
12             System.out.print(fib(i)+" ");
13 //            每10项进行一次换行
14             if (i % 10 ==0)
15                 System.out.println();
16         }
17
18     }
19 }

7  本题主要考的是方程的判别式问题 与方程的根求解问题,记住这些基本公式问题就不大

 1 public class QuadraticEquation {
 2    private double a,b,c;
 3     public static void main(String[] args) {
 4         QuadraticEquation quadraticEquation =new QuadraticEquation(1,3,1);
 5         if (quadraticEquation.getDiscriminant()<0)
 6             System.out.println("方程无根");
 7         if (quadraticEquation.getDiscriminant()==0)
 8             System.out.println(quadraticEquation.getRoot1());
 9         if (quadraticEquation.getDiscriminant()>0)
10             System.out.println("x1="+quadraticEquation.getRoot1()+" "+"x2="+quadraticEquation.getRoot2());
11
12     }
13 //      带有参数的构造方法
14     public QuadraticEquation(double a, double b, double c) {
15         this.a = a;
16         this.b = b;
17         this.c = c;
18     }
19
20     public double getA() {
21         return a;
22     }
23
24     public double getB() {
25         return b;
26     }
27
28     public double getC() {
29         return c;
30     }
31 //    判别式
32     public double getDiscriminant(){
33         return b*b-4*a*c;
34     }
35 //    方程一个根
36     public double getRoot1(){
37         return (-b+Math.sqrt(Math.pow(b,2)-4*a*c))/2*a;
38     }
39 //    方程第二个根
40     public double getRoot2(){
41         return (-b-+Math.sqrt(Math.pow(b,2)-4*a*c))/2*a;
42     }
43 }

8  本题就是对成员变量的基本运用注意题目意思即可

 1 public class TV {
 2     private int channel,volumeLevel;
 3     private boolean on;
 4
 5     public static void main(String[] args) {
 6     }
 7 //    无参构造函数
 8     public TV(){
 9     }
10 //    电视开
11     public void turnOn(){
12         on = true;
13     }
14 //    电视关
15     public void turnOff(){
16         on = false;
17     }
18 //      设置频道
19     public void setChannel(int channel) {
20         this.channel = channel;
21     }
22 //      设置音量
23     public void setVolumeLevel(int volumeLevel) {
24         this.volumeLevel = volumeLevel;
25     }
26 //    频道+开关
27     public void channelUp(){
28         channel++;
29     }
30 //    频道-开关
31     public void channelDown(){
32         channel--;
33     }
34 //    声音+开关
35     public void volumeUp(){
36         volumeLevel++;
37     }
38 //    声音-开关
39     public void volumeDown(){
40         volumeLevel--;
41     }
42 }

9  本题主要是对基本概念的理解,比如偶数、奇数的判断

  1 public class MyInteger {
  2     private int value;
  3
  4     public static void main(String[] args) {
  5
  6         MyInteger myInteger =new MyInteger(10);
  7         System.out.println("value:");
  8         System.out.println("偶数:"+myInteger.isEven());
  9         System.out.println("奇数:"+myInteger.isOdd());
 10         System.out.println("素数:"+myInteger.isPrime());
 11         System.out.println("返回参数15:");
 12         System.out.println("偶数:"+myInteger.isEven(15));
 13         System.out.println("奇数:"+myInteger.isOdd(15));
 14         System.out.println("素数:"+myInteger.isPrime(15));
 15        // char []a={‘a‘,‘b‘,‘c‘};
 16      // myInteger.parseInt(a);
 17         char A[]={‘1‘,‘2‘,‘3‘};
 18         //myInteger.parseInt(A);
 19         System.out.println(myInteger.parseInt(A));
 20         String s = "123";
 21         System.out.println(myInteger.parseInt(s));
 22     }
 23
 24     public MyInteger(int value) {
 25         this.value = value;
 26     }
 27
 28     public int getValue() {
 29         return value;
 30     }
 31 //    判断value是否为偶数
 32     public boolean isEven(){
 33         return value%2==0;
 34     }
 35 //    判断value是否为奇数
 36     public boolean isOdd(){
 37         return value%2!=0;
 38     }
 39 //    判断返回参数整数是否为素数
 40     public boolean isPrime(){
 41         int i;
 42         for(i=2;i<value;i++) {
 43             if (value % i == 0)
 44                 break;
 45         }
 46             if (value==i)
 47                 return true;
 48             return false;
 49     }
 50 //    判断返回参数整数是否为偶数
 51     public boolean isEven(int number){
 52         return number%2==0;
 53
 54     }
 55 //    判断返回参数整数是否为奇数
 56     public boolean isOdd(int number){
 57         return number%2!=0;
 58
 59     }
 60 //    判断返回参数整数是否为素数
 61     public boolean isPrime(int number){
 62         int i;
 63         for(i=2;i<number;i++) {
 64             if (number % i == 0)
 65                 break;
 66         }
 67         if (number==i)
 68             return true;
 69         return false;
 70
 71     }
 72 //    判断返回参数整数对象是否为偶数
 73     public boolean isEven(MyInteger myInteger){
 74         return myInteger.value % 2 ==0;
 75
 76     }
 77 //    判断返回参数整数对象是否为奇数
 78     public boolean isOdd(MyInteger myInteger){
 79         return myInteger.value % 2 != 0;
 80     }
 81 //    判断返回参数整数对象是否为素数
 82     public boolean isPrime(MyInteger myInteger){
 83
 84         int i;
 85         for(i=2;i<myInteger.value;i++) {
 86             if (myInteger.value % i == 0)
 87                 break;
 88         }
 89         if (myInteger.value==i)
 90             return true;
 91         return false;
 92     }
 93 //    比较当前对象整数与参数整数
 94     public boolean equals(int b){
 95         return b==value;
 96
 97     }
 98 //    比较当前对象整数与参数整数对象
 99     public boolean equals(MyInteger myInteger){
100         return myInteger.value==value;
101
102     }
103 //    将参数字符数组转换为整数
104     public int parseInt(char []a){
105         String s=new String(a);
106         return parseInt(s);
107     }
108 //    将参数字符串转换成整数
109     public int parseInt(String s){
110         return Integer.valueOf(s);
111     }
112
113 }

10  本题主要考的是回文数与素数,我们首先判断这个数是否为素数,在这个基础上再判断是否为回文数,素数就是只能被1和本身整除的数,回文数就是一个数第一位与最后一位相等,第二位与倒数第二位相等,比如11、101

 1 public class HuiSu {
 2     public int i,j,k,count=0;
 3
 4     public static void main(String[] args) {
 5         HuiSu huiSu =new HuiSu();
 6         huiSu.print();
 7     }
 8     public void print(){
 9         for ( j = 2; j < 1000 ; j++) {
10             for ( k = 2; k <1000 ; k++) {
11                 if (j%k==0)
12                     break;
13             }
14 //            判断是是否是素数
15             if (j == k)
16             {
17 //                判断是否为回文数
18                 if (j / 10 == 0)
19                 {
20                     count++;
21                     System.out.print(j+" ");
22                     if (count % 10==0)
23                         System.out.println();
24                 }
25               if (j / 10==j%10)
26                 {
27                     count++;
28                     System.out.print(j+" ");
29                     if (count % 10==0)
30                         System.out.println();
31                 }
32                  if(j / 100==j % 10)
33                 {
34                     count++;
35                     System.out.print(j+" ");
36                     if (count % 10 == 0 && count != 20)
37                         System.out.println();
38                 }
39             }
40         }
41     }
42 }

10  本题虽然是最后一题,但是仍然是水题,就是对成员变量的运用

 1 import java.time.LocalDate;
 2
 3 public class Account {
 4     private int id;
 5     private double balance,annulRate;
 6     private LocalDate dateCreated;
 7
 8     public static void main(String[] args) {
 9         Account account = new Account(123,0.0);
10         System.out.println("尊敬的:"+account.id+"用户"+"恭喜你开通账户");
11         System.out.println("你的账户余额为:"+account.balance);
12         //创建账户的时间
13         account.getDateCreated();
14         //存款
15         account.deposit(500);
16         //取款
17         account.withdraw(10);
18         System.out.println("你要办理的业务:");
19         account.setAnnulRate(3.6);
20         account.getMonthlyInterestRate();
21
22     }
23 //  有参构造函数
24     public Account(int id, double balance) {
25         this.id = id;
26         this.balance = balance;
27     }
28 //    无参构造函数
29     public Account() {
30     }
31
32     public int getId() {
33         return id;
34     }
35 //  返回账户余额
36     public double getBalance() {
37         return balance;
38     }
39 //  返回存款的年利率
40 public double getAnnulRate() {
41         return annulRate;
42     }
43 //获取当前日期
44     public LocalDate getDateCreated() {
45        // LocalDate  dateCreated= LocalDate.now();
46         LocalDate today = LocalDate.now();
47        today.getYear();
48         System.out.println("您账户创建的日期为:"+LocalDate.now());
49        // System.out.println(today.getYear()+"/"+today.getMonthValue()+"/"+today.getDayOfMonth()+"/");
50         return dateCreated;
51     }
52 //    返回月利率的方法
53 public double getMonthlyInterestRate(){
54     System.out.println("您存款的月利率为:"+annulRate/12);
55         return annulRate/12;
56
57 }
58 //取款方法
59 public void withdraw(double amount){
60         balance -= amount;
61     System.out.println("取款金额为:"+amount);
62     System.out.println("当前余额为:"+balance);
63
64 }
65 //  存款方法
66 public void deposit(double amount){
67         balance += amount;
68     System.out.println("存款金额为:"+amount);
69     System.out.println("当前余额为:"+balance);
70 }
71 //  设置账户ID
72     public void setId(int id) {
73         this.id = id;
74     }
75 //  设置账户的余额
76     public void setBalance(double balance) {
77         this.balance = balance;
78     }
79 //      修改存款的年利率
80     public void setAnnulRate(double annulRate) {
81         System.out.println("您的存款年利率为:"+annulRate);
82         this.annulRate = annulRate;
83     }
84 }

原文地址:https://www.cnblogs.com/PerZhu/p/10865271.html

时间: 2024-10-04 07:14:30

JAVA语言程序设计课后习题----第四单元解析(仅供参考)的相关文章

JAVA语言程序设计课后习题----第三单元解析(仅供参考)

1 本题水题,记住要知道输入格式即可 1 import java.util.Scanner; 2 3 public class test { 4 public static void main(String[] args) { 5 // 从键盘中读取数据 6 Scanner input = new Scanner(System.in); 7 int a = input.nextInt(); 8 if(a%2==0) 9 System.out.println("这个数是偶数"); 10

Java语言程序设计(基础篇) 第四章 数学函数、字符和字符串

第四章 数学函数.字符和字符串 4.2 常用数学函数 方法分三类:三角函数方法(trigonometric method).指数函数方法(exponent method)和服务方法(service method) 4.4 String类型 String类型不是基本类型,而是引用类型(reference type).

曾经做过的40道程序设计课后习题总结(一)

曾经做过的40道程序设计课后习题总结(一) 课后习题目录 1 斐波那契数列2 判断素数3 水仙花数4 分解质因数5 杨辉三角6 学习成绩查询7 求最大公约数与最小公倍数8 完全平方数9 统计字母.空格.数字和其它字符个数10 求主对角线之和11 完数求解12 求s=a+aa+aaa+aaaa+aa...a的值13 高度计算14 乘法口诀15 无重复三位数16 菱形打印17 利润计算18 第几天判断19 从小到大输出数列20 猴子吃桃问题21 乒乓球比赛22 求分数之和23 求阶乘的和24 递归求

曾经做过的40道程序设计课后习题总结(三)

曾经做过的40道程序设计课后习题总结(三) 课后习题目录 1 斐波那契数列2 判断素数3 水仙花数4 分解质因数5 杨辉三角6 学习成绩查询7 求最大公约数与最小公倍数8 完全平方数9 统计字母.空格.数字和其它字符个数10 求主对角线之和11 完数求解12 求s=a+aa+aaa+aaaa+aa...a的值13 高度计算14 乘法口诀15 无重复三位数16 菱形打印17 利润计算18 第几天判断19 从小到大输出数列20 猴子吃桃问题21 乒乓球比赛22 求分数之和23 求阶乘的和24 递归求

Java语言程序设计 上机实验4 掌握声明接口、一个类实现接口的声明和使用方法

Java语言程序设计 上机实验4 实验目的: 理解接口的作用,理解接口和实现接口的类的关系,掌握声明接口.一个类实现接口的声明和使用方法:熟悉Java语言包和实用包中的常用类. 实验内容:(*)为选做 声明圆柱体类Cylinder,继承椭圆类Ellipse(实现周长Perimeter接口和面积Area接口),为圆柱体类设计较为全面的构造方法,并实现体积Volume接口,计算表面积和体积. 将Java的若干关键字(15个以上)保存在一个字符串数组中,对其按升序排列,再采用顺序查找和二分法查找,判断

《Java语言程序设计》大作业报告 九宫格游戏

    <Java语言程序设计>大作业报告     中国石油大学(北京)2015 - 2016 学年第二学期     班级:_____计算机14-1_______ 姓名:_____  许 恺_________________ 学号:______2014011329___________     题意分析 程序首先需要九个可以移动的格子,大小相等,有字符串标示,其次要可以相应鼠标和键盘方向键的控制,可以自由移动,并且与此同时记录步数,最后在满足条件时弹出对话框并显示步数以及是否打破记录,关于打破

Java语言程序设计 上机实验5 异常

Java语言程序设计 上机实验5 实验目的: 理解异常的概念,掌握Java的异常处理机制.常见异常的捕获方法.自定义异常及其抛出和捕获方法. 实验内容: 常见异常的捕获: 编写一个程序,分别生成ArrayIndexOutOfBoundsException类型和NumberFormatException类型的异常:然后改写程序,对这两种类型的异常进行捕获并合理地处理. 另外,思考并回答问题:能否0同时抛出ArrayIndexOutOfBoundsException类型和NumberFormatEx

java语言程序设计(一)-1

java 语言的特点是: 强类型,制定了比较多的语言规范,尽可能在编译阶段检测出更多的错误及警告. 编译和解释,首先将源代码编译成codebyte,运行时,java的运行系统装载和链接需要执行的类,并做必要的优化后,解释执行字节码程序. 自动无用内存回收功能,系统有个垃圾收集器,自动收集程序不再使用的内存. 面向对象,采用面向对象的思想方法.主要有封装,继承,多态等特点. 与平台无关,编译一次,可以跨平台运行,前提是平台上安装java解释器. 安全性,不允许使用指针,进行数组下标越界检测,内存自

java语言程序设计(一)-2

(一)jdk安装及环境变量配置 1.jdk下载 下载地址http://www.oracle.com/technetwork/java/javase/downloads/index.html,下载SE标准企业版本,当前已经更新到1.8.X版本了,但是最新版本不支持XP系统,已被验证(无法在xp系统中安装),于是选择1.7版本. 2.环境变量配置 配置path和classpath路径,我的电脑->属性->高级->环境变量,在用户变量中添加java的安装路径,在path中添加bin路径,在cl