java 三角形类 Triangle的用法详解

三角形类Triangle

设计一个名为 Triangle 的类来扩展 GeometricObject 类。该类包括:

1、三个名为 side1,side2,side3 的double 数据域表示这个三角形的三条边,它们的默认值是1.0.

2、一个无参构造方法创建的默认的三角形

3、一个能创建带指定side1,side2,side3的三角形的构造方法

4、所有三个数据域的访问器方法

5、一个名为getArea()的方法返回这个三角形的面积

6、一个名为getPerimeter()的方法返回这个三角形的周长

7、一个名为toString()的方法返回这个三角形的字符串描述

问题分析:

按部就班,根据要求,从数据域,到构造方法(无参,有参),到方法,到测试类

学会使用继承以及继承的方法就好

代码演示(已验证)

1、创建的类:

// 创建的类
package java_testquestions;
class GeometricObject{
 private String color = "white";
 private boolean filled;
 private java.util.Date dateCreated;
 public GeometricObject() {
 dateCreated = new java.util.Date();
 }
 public GeometricObject(String color,boolean filled) {
 dateCreated = new java.util.Date();
 this.color = color;
 this.filled = filled;
 }
 public String getColor() {
 return color;
 }
 public void setColor(String color) {
 this.color = color;
 }
 public boolean filled() {
 return filled;
 }
 public void setFilled(boolean filled) {
 this.filled = filled;
 }
 public java.util.Date getDateCreated(){
 return dateCreated;
 }
 public String toString() {
 return "created on "+dateCreated +"\n color: "+color + " and filled: "+filled;
 }
}
public class Triangle extends GeometricObject
{
 private double side1;
 private double side2;
 private double side3;
 String color;

 Triangle(){
 side1 = 1.0;
 side2 = 1.0;
 side3 = 1.0;
 }
 public Triangle(double side1,double side2,double side3) {
 this.side1 = side1;
 this.side2 = side2;
 this.side3 = side3;
 }
 public double getSide1() {
 return side1;
 }
 public double getSide2() {
 return side2;
 }
 public double getSide3() {
 return side3;
 }
// 父类中已有该方法
 public void setColor(String Color) {
 color = Color;
 }
 public String getColor() {
 return color;
 }
 public double getArea() {
 double s = (side1+side2+side3)*1.0/2;
 double area = Math.sqrt(s*(s-side1)*(s-side2)*(s-side3));
 return area;
 }

 public double getPerimeter() {
 return side1+side2+side3;
 }
 public String toString() {
 return "Triangle: side1 = "+side1 +"side2 = "+side2 +" side3 = "+side3;
 }
}

2、测试类,Triangle_Test

// 测试类
package java_testquestions;
import java.util.Scanner;
public class Triangle_Test
{
 public static void main(String[] args)
 {
 Scanner input = new Scanner(System.in);

 System.out.println("请输入三角形的三条边:"); // 需要用字符串类型输入,这样在下面 输入颜色时就不会报错
 String side11 = input.nextLine();
 double side1 = Double.parseDouble(side11);
 String side22 = input.nextLine();
 double side2 = Double.parseDouble(side22);
 String side33 = input.nextLine();
 double side3 = Double.parseDouble(side33);
// double side1 = input.nextDouble();
// double side2 = input.nextDouble();
// double side3 = input.nextDouble();
 Triangle triangle = new Triangle(side1,side2,side3);

 System.out.println("请输入三角形的颜色: ");
 String color = input.nextLine();
 triangle.setColor(color);
 System.out.println("\n");

 System.out.println("请输入是否填充 true or false:");
 boolean filled = input.nextBoolean();
 triangle.setFilled(filled);

 System.out.println("三角形的面积为 :"+triangle.getArea());
 System.out.println("三角形的周长为 :"+triangle.getPerimeter());
 System.out.println("三角形的颜色为 :"+triangle.getColor());
 System.out.println("三角形是否填充 :"+triangle.filled());
 }
}

泡泡:

创建类的话认真点应该没什么,在测试类里面有一个细节需要注意:在输入 double 类型 的边长时,要先使用字符串类型输入,然后在转化为double类型数据,转化方式如下:

 String side11 = input.nextLine();
 double side1 = Double.parseDouble(side11);
 String side22 = input.nextLine();
 double side2 = Double.parseDouble(side22);
 String side33 = input.nextLine();
 double side3 = Double.parseDouble(side33);

嗯,ok,收工。

补充:利用java编写三角形的判定程序

我就废话不多说了,大家还是直接看代码吧~

public static void main(String[] args) {
// TODO 自动生成的方法存根
int a,b,c;
System.out.println(“请输入三角形的三边”);
@SuppressWarnings(“resource”)
Scanner sc=new Scanner(System.in);
System.out.println(“a=”);
a=sc.nextInt();
System.out.println(“b=”);
b=sc.nextInt();
System.out.println(“c=”);
c=sc.nextInt();
if((a+b)>c&&(b+c)>a&&(c+a)>b)
System.out.println(a+”,”+b+”,”+c+”能构成三角形!”);
else
System.out.println(a+”,”+b+”,”+c+”不能构成三角形!”);
}

运行结果如下所示

程序小总结:

有的时候,我们需要在满足某种条件时进行一些操作,而不满足条件时就不进行任何操作,这个时候我们可以只使用 if 语句。也就是说,if else 不必同时出现。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。

(0)

相关推荐

  • Java算法实现杨辉三角的讲解

    又写了个算法题,著名的杨辉三角,哈哈,直接进入主题吧! 先给大家简单介绍一下吧: 杨辉三角的每个数等于它上方两数之和. 在百度上找了张图给大家理解 大家可以自己分析一下,我直接上代码,在代码里面讲解 public class trangle { public static void main(String[] args) { int x=8; //我们先定义8行的数组,这里可以随意设置哦 int[][] arg=new int[x][x];//定义一个二维数组 for(int i=0;i<x;i

  • Java利用for循环输出空心三角形、空心菱形和空心矩形的代码

    空心三角形 空心三角形输出需要用到判断语句,判断每行的空格与星号的输出,下面写出了完整语句,及相关语句的详细注释.空心菱形同样类似 package com.zhebie.test; public class KongTraingle { public static void main(String[] args) { int n=5; //n表示输出空心三角形行数,这里以5行为例 for(int i=1;i<=n;i++) { for(int j=1;j<=n-i;j++) { //控制每行最

  • java实现打印正三角的方法

    本文实例为大家分享了java实现打印正三角的具体代码,供大家参考,具体内容如下 代码: package BasicType; /** * 封装一个可以根据用户传入值来打印正三角的方法 * @author Administrator */ public class Enme { //n代表打印的层数 public static void print_positive_triangle(int n){ //第一层1个,第二层三个,第三层5个...类比退出第n层就是last个* int last =

  • 用java实现杨辉三角的示例代码

    之前有学弟问过我一道java的面试题,题目不算难.用java实现杨辉三角.我花了点时间整理了一下,发现挺有意思的,于是想写下来分享一下.在写代码之前,我们先理清下面两个问题. 什么是杨辉三角 杨辉三角,是二项式系数在三角形中的一种几何排列.在我国南宋数学家杨辉1261年所著的<详解九章算法>有提到过.在欧洲叫做帕斯卡三角形,如图. 杨辉三角 杨辉三角的规律即原理 1.每个数等于它上方两数之和. 2.每行数字左右对称,由1开始逐渐变大. 3.第n行的数字有n项. 4.第n行数字和为2n-1. 5

  • java int类型二维数组实现“杨辉三角”的完整实例

    杨辉三角的规律: 1.每行的数据个数和在第几行一样. 2.每行第一个数和最后一个数都是1. 3.每行除了第一个数据和最后一个数据 其他数据的值等于上面一行的对应列的值和左对角值的和.例如:a[2][1]=a[1][0]+a[1][1] 根据上面的规律我们设计程序 private static void demo(){ int[][] ints = new int[10][]; //动态给ints数组的一维赋值一个不同的数组 for (int i = 0; i < ints.length; i++

  • java编程实现杨辉三角两种输出结果实例代码

    首先展示下结果: 简介: 杨辉三角,是二项式系数在三角形中的一种几何排列.在欧洲,这个表叫做帕斯卡三角形.帕斯卡(1623----1662)是在1654年发现这一规律的,比杨辉要迟393年,比贾宪迟600年.杨辉三角是中国古代数学的杰出研究成果之一,它把二项式系数图形化,把组合数内在的一些代数性质直观地从图形中体现出来,是一种离散型的数与形的优美结合. 实例代码如下: package com.sxt; import java.util.Arrays; public class KeBen { p

  • java 三角形类 Triangle的用法详解

    三角形类Triangle 设计一个名为 Triangle 的类来扩展 GeometricObject 类.该类包括: 1.三个名为 side1,side2,side3 的double 数据域表示这个三角形的三条边,它们的默认值是1.0. 2.一个无参构造方法创建的默认的三角形 3.一个能创建带指定side1,side2,side3的三角形的构造方法 4.所有三个数据域的访问器方法 5.一个名为getArea()的方法返回这个三角形的面积 6.一个名为getPerimeter()的方法返回这个三角

  • 基于IntBuffer类的基本用法(详解)

    废话不多说,直接上代码 package com.ietree.basicskill.socket.basic.nio; import java.nio.IntBuffer; /** * Created by Administrator on 2017/5/25. */ public class BufferTest { public static void main(String[] args) { // 1 基本操作 /*//创建指定长度的缓冲区 IntBuffer buf = IntBuff

  • Java之Pattern.compile函数用法详解

    除了Pattern Pattern.compile(String regex), Pattern类的compile()方法还有另一个版本: Pattern Pattern.complie(String regex,int flag),它接受一个标记参数flag,以调整匹配的行为. flag来自以下Pattern类中的常量: 编译标记 效果 Pattern.CANON_EQ 两个字符当且仅当它们的完全规范分解相匹配时,就认为它们是匹配的,例如,如果我们指定这个标记,表达式a\u030A就会匹配字符

  • Java知识梳理之泛型用法详解

    目录 泛型 作用 集合中泛型 自定义泛型 通配符 2.注意点 3.有限制的通配符 泛型 背景: 从JDK 5.0以后,Java引入了“参数化类型(Parameterized type)”的概念,允许我们在创建集合时再指定集合元素的类型,正如:List ,这表明该List只能保存字符串类型的对象. 作用 解决元素存储的安全性问题,好比商品.药品标签,不会弄错. 解决获取数据元素时,需要类型强制转换的问题,好比不用每回拿商品.药品都要辨别. @Test public void test1(){ Ar

  • Java集合类之TreeSet的用法详解

    目录 上节回顾 TreeSet集合概述和特点 构造方法 方法摘要 Demo 自然排序Comparable的使用 比较器排序Comparator的使用 上节回顾 LinkedHashSet集合概述及特点 LinkedHashSet集合特点 哈希表和链表实现Set接口,具有可预测的迭代次序 由链表保证元素有序,也就是说元素的存储和取出顺序是一致的 由哈希表保证元素唯一,也就是说没有重复元素 LinkedHashSet集合的储存和遍历: import java.util.LinkedHashSet;

  • Java AtomicInteger类的使用方法详解

    首先看两段代码,一段是Integer的,一段是AtomicInteger的,为以下: public class Sample1 { private static Integer count = 0; synchronized public static void increment() { count++; } } 以下是AtomicInteger的: public class Sample2 { private static AtomicInteger count = new AtomicIn

  • 浅谈java Iterator.remove()方法的用法(详解)

    实例如下: @Test public void tt(){ List<String> list = new ArrayList<String>(); list.add( "0" ); list.add( "1" ); list.add( "2" ); list.add( "3" ); list.add( "4" ); list.add( "5" ); list.a

  • java枚举类的构造函数实例详解

    java枚举类的构造函数实例详解 首先,给出一个例题如下: enum AccountType { SAVING, FIXED, CURRENT; private AccountType() { System.out.println("It is a account type"); } } class EnumOne { public static void main(String[]args) { System.out.println(AccountType.FIXED); } } T

  • Java构造函数与普通函数用法详解

    函数也被称为方法! 函数的作用及特点: 1.用于定义功能,将功能封装. 2.可以提高代码的复用性. 函数注意事项: 1.不能进行函数套用(不可以在函数内定义函数). 2.函数只有被调用才能被执行. 3.基本数据类型(String.int.-.)修饰的函数类型,要有return返回值. 4.void修饰的函数,函数中的return语句可以省略不写. 5.函数名可以根据需求进行命名. 代码示例:(有无函数/方法的区别) 无函数/方法代码例子: public class NoFunc { public

  • Java map.getOrDefault()方法的用法详解

    Map.getOrDefault(Object key, V defaultValue)方法的作用是: 当Map集合中有这个key时,就使用这个key值: 如果没有就使用默认值defaultValue. 代码示例如下: HashMap<String, String> map = new HashMap<>(); map.put("name", "cookie"); map.put("age", "18"

随机推荐