Java语言程序设计(第3版)沈泽刚主编第4章课后习题答案
Posted nuist__NJUPT
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java语言程序设计(第3版)沈泽刚主编第4章课后习题答案相关的知识,希望对你有一定的参考价值。
Java语言程序设计(第3版)沈泽刚主编第4章课后习题答案
第四章 类和对象
4.1 定义一个名为Person的类,编写程序,实现定义的Person类,实现数据的访问与修改。
public class Person {
String name ;
int age ;
public void setName(String name){
this.name = name ;
}
public String getName(){
return name ;
}
public void setAge(int age){
this.age = age ;
}
public void speak(){
System.out.println("姓名:" + name) ;
System.out.println("年龄:" + age) ;
}
public static void main(String[] args){
Person person = new Person() ;
person.setName("王国栋") ;
person.setAge(24) ;
person.speak() ;
}
}
4.2 定义一个名为Circle的类,编写程序测试圆类的所有方法。
public class Circle {
double centerX ;
double centerY ;
double radius ;
public Circle(double radius){
this.radius = radius ;
}
public void setRadius(double radius){
this.radius = radius ;
}
public double getRadius(){
return radius ;
}
public double getArea(){
return Math.PI * radius * radius ;
}
public double getPerimeter(){
return 2 * Math.PI * radius ;
}
public static void main(String[] args){
Circle circle = new Circle(1.0) ;
System.out.println("圆形的面积为:" + circle.getArea()) ;
System.out.println("圆形的周长为:" + circle.getPerimeter()) ;
circle.setRadius(2.0) ;
System.out.println("圆形的半径为:" + circle.getRadius()) ;
System.out.println("圆形的周长为:" + circle.getPerimeter()) ;
System.out.println("圆形的面积为:" + circle.getArea()) ;
}
}
4.3 定义一个名为Rectangle的类表示矩形,编写程序测试这个类的所有方法
public class Rectangle {
double length, width ;
public Rectangle(double length, double width){
this.length = length ;
this.width = width ;
}
public double getLength() {
return length;
}
public void setLength(double length) {
this.length = length;
}
public double getWidth() {
return width;
}
public void setWidth(double width) {
this.width = width;
}
public double getArea(){
return length * width ;
}
public double getPerimeter(){
return (length + width) * 2 ;
}
public static void main(String[] args){
Rectangle rectangle = new Rectangle(1.0, 1.0) ;
System.out.println("矩形的面积为:" + rectangle.getArea()) ;
System.out.println("矩形的周长为:" + rectangle.getPerimeter()) ;
rectangle.setLength(2.0) ;
rectangle.setWidth(2.0) ;
System.out.println("矩形的长为:" + rectangle.getLength() + "矩形的宽为:" + rectangle.getWidth()) ;
System.out.println("矩形的面积为:" + rectangle.getArea()) ;
System.out.println("矩形的周长为:" + rectangle.getPerimeter()) ;
}
}
4.4 定义一个名为Triangle的三角形类,编写程序测试三角形类的所有方法。
public class Triangle {
double a, b, c ;
public Triangle(){
this.a = 0 ;
this.b = 0 ;
this.c = 0 ;
}
public Triangle(double a, double b, double c){
this.a = a ;
this.b = b ;
this.c = c ;
}
public double getArea(){
double s = (a + b + c) / 2 ;
double area = Math.sqrt(s*(s-a)*(s-b)*(s-c)) ;
return area ;
}
public static void main(String[] args){
Triangle triangle = new Triangle(3, 4, 5) ;
System.out.println("三角形的面积为:" + triangle.getArea()) ;
}
}
4.6编写程序,打印输出斐波那契数列的前20项。
public class Fibonacci {
public static long fib(long n){
if(n==1 || n==2){
return 1 ;
}
return fib(n-1) + fib(n-2) ;
}
public static void main(String[] args){
for(int i=1; i<=20; i++){
System.out.println(fib(i)) ;
}
}
}
4.7 为一元二次方程设计一个名为QuadraticEquation的类,判断并打印方程组的根。
import java.util.Scanner;
/**
* 4.7 为一元二次方程设计一个名为QuadraticEquation的类,判断并打印方程组的根。
*/
public class QuadraticEquation {
private double a, b, c ;
public QuadraticEquation(){}
public QuadraticEquation(double a, double b, double c){
this.a = a ;
this.b = b ;
this.c = c ;
}
public double getA() {
return a;
}
public double getB() {
return b;
}
public double getC() {
return c;
}
public double getDiscriminant(){
double a = getA() ;
double b = getB() ;
double c = getC() ;
return b * b - 4 * a * c ;
}
public static void main(String[] args){
System.out.println("请输入一元二次方程的三个系数a,b,c") ;
Scanner input = new Scanner(System.in) ;
Double a = input.nextDouble() ;
Double b = input.nextDouble() ;
Double c = input.nextDouble() ;
QuadraticEquation qe = new QuadraticEquation(a,b,c) ;
if(qe.getDiscriminant() > 0){
System.out.println("一元二次方程有两个根") ;
double x1 = ((-b) + Math.sqrt(Math.pow(b,2) - 4 * a * c)) / (2 * a) ;
double x2 = ((-b) - Math.sqrt(b * b - 4 * a * c)) / (2 * a) ;
System.out.println("第1个实数根为:" + x1) ;
System.out.println("第2个实数根为:" + x2) ;
}else if(qe.getDiscriminant() == 0){
System.out.println("一元二次方程仅有一个实数根") ;
double x = (-b) / (2 * a) ;
System.out.println("方程的实数根为:" + x) ;
}else{
System.out.println("方程无实数根") ;
}
}
}
4.8 定义一个名为TV的类表示电视机,编写程序实现该类所有的方法。
public class TV {
int channel ;
int volumeLevel ;
boolean on ;
public TV(){}
public void turnOn(){
on = true ;
System.out.println("打开电视机") ;
}
public void turnOff(){
System.out.println("关闭电视机") ;
on = false ;
}
public void setChannel(int channel) {
this.channel = channel;
}
public void setVolumeLevel(int volumeLevel) {
this.volumeLevel = volumeLevel;
}
public void channelUp(){
if(on)
if(channel >=1 && channel <= 19)
channel ++ ;
else{
System.out.println("已加载所有频道") ;
}
}
public void channelDown(){
if(on)
if(channel >=2 && channel <= 20){
channel -- ;
}else{
System.out.println("已加载所有频道") ;
}
}
public void volumeUp(){
if(on)
if(volumeLevel >= 1 && volumeLevel <= 19){
volumeLevel ++ ;
}else{
System.out.println("当前为系统最大音量") ;
}
}
public void volumeDown(){
if(on)
if(volumeLevel >=2 && volumeLevel <= 20){
volumeLevel -- ;
}else{
System.out.println("当前是系统最小音量") ;
}
}
public static void main(String[] args){
TV tv = new TV() ;
tv.turnOn();
tv.setChannel(5);
tv.setVolumeLevel(10);
System.out.println("当前频道为:" + tv.channel) ;
System.out.println("当前音量为:" + tv.volumeLevel) ;
tv.channelUp() ;
tv.volumeUp() ;
System.out.println("当前频道为:" + tv.channel) ;
System.out.println("当前音量为:" + tv.volumeLevel) ;
tv.channelDown();
tv.volumeDown();
System.out.println("当前频道为:" + tv.channel) ;
System.out.println("当前音量为:" + tv.volumeLevel) ;
tv.turnOff();
}
}
4.9 编写一个名MyInteger的类,编写应用测试程序测试该类的所有方法。
public class MyInteger {
int value ;
public MyInteger(int value){
this.value = value ;
}
public int getValue(){
return value ;
}
public boolean isEven(){
return value % 2 == 0 ? true : false ;
}
public boolean isOdd(){
return value % 2 == 1 ? true : false ;
}
public boolean isPrime(){
for(int i=2; i<value; i++){
if(value % i == 0){
return false ;
}
}
return true ;
}
public boolean isEven(int value){
return value % 2 == 0 ? true : false ;
}
public boolean isOdd(int value){
return value % 2 == 1 ? true : false ;
}
public boolean isPrime(int value){
for(int i=2; i<value; i++){
if(value % i == 0){
return false ;
}
}
return true 以上是关于Java语言程序设计(第3版)沈泽刚主编第4章课后习题答案的主要内容,如果未能解决你的问题,请参考以下文章
Java语言程序设计(第3版)沈泽刚主编第6,7,8章课后习题答案
Java语言程序设计(沈泽刚主编)第3版 第1~3章编程练习答案
求数据结构(用面向对象方法与C++语言描述)第二版 殷人昆主编 课后答案