(1)声明位于包test.exam中Point类,有坐标x、y两个私有成员变量,有一个返回与其它点的距离的方法,还有一个移动点的方法

package com.qst.fuxi;
public class Point {double x;double y;public Point() {}public Point(double x, double y) {super();this.x = x;this.y = y;}public double getX() {return x;}public void setX(double x) {this.x = x;}public double getY() {return y;}public void setY(double y) {this.y = y;}public void movePoint(double dx,double dy) {System.out.println("移动前的坐标为:"+this.x+this.y);System.out.println("移动量:"+dx+dy);this.x+=dx;this.y+=dy;System.out.println("移动后的坐标为:"+this.x+this.y);}
}
测试函数
1、返回与其它点的距离
package com.qst.fuxi;
import java.util.Scanner;
import java.math.*;
public class PointDemo {Point p1;Point p2;public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.println("请输入第一个点的x值x1");Double x1 = scanner.nextDouble();System.out.println("请输入第一个点的y值y1");Double y1 = scanner.nextDouble();System.out.println("请输入第二个点的x值x2");Double x2 = scanner.nextDouble();System.out.println("请输入第二个点的y值y2");Double y2 = scanner.nextDouble();Point p1 = new Point(x1, y1);Point p2 = new Point(x2, y2);PointDemo pd2= new PointDemo(p1,p2);pd2.distance();}public void distance() {Double a=Math.sqrt(Math.abs(p1.getX()-p2.getX())*Math.abs(p1.getX()-p2.getX())+Math.abs(p1.getY()-p2.getY())*Math.abs(p1.getY()-p2.getY()));System.out.println(a);}public PointDemo() {super();}public PointDemo(Point p1, Point p2) {super();this.p1 = p1;this.p2 = p2;}public Point getP1() {return p1;public void setP1(Point p1) {this.p1 = p1;}public Point getP2() {return p2;}public void setP2(Point p2) {this.p2 = p2;}
}
2、移动点
package com.qst.fuxi;
public class PointMove {public double x;public double y;public static void main(String[] args) {Point p1=new Point(1.0,2.0);Point p2=new Point(3.0,4.0);p1.movePoint(p2.x,p2.y);    }
}

运行结果:

(2)声明一个位于包test.abc中的圆类,圆由圆心和半径组成,有一个计算面积的方法,利用1中的类实现圆类,写一个测试类用于测试1中的点类和2中的圆类

package com.qst.fuxi;
public class CircleArea {// 成员变量private int r; // 变量可以Scanner输入数据private double PI = 3.14; // double接收// 构造方法(无参构造方法)public void Circle() {}public void setR(int r) {this.r = r;}// 定义一个getArea方法将来求圆的面积public void getArea() {System.out.println("圆的面积为:" + (PI * r * r));}// 定义一个getGirth方法将来求圆的面积public void getGirth() {System.out.println("圆的周长为:" + (2 * PI * r));}}
测试函数
package com.qst.fuxi;
import java.util.Scanner;
public class  Circle {public static void main(String[] args) {    Scanner sc = new Scanner(System.in); // 创建对象System.out.println("请输入圆的半径为:");int radius = sc.nextInt(); // 接收数据CircleArea c = new CircleArea();c.setR(radius);c.getArea();c.getGirth();}
}

运行结果:

(3)Person类有姓名属性,说出姓名方法,Student类除了有姓名,还有学号、专业和成绩属性及设置和输出成绩等方法,定义这两个类并用测试类进行测试


1、Person类
package text;
public class Person {private String name;//创建构造器public Person(String name){this.name = name;}//进行封装public String getName() {return name;}public void setName(String name) {this.name = name;}//建立一个talk方法对个人信息进行输出public void talk(){System.out.println("学生信息"+"\n学生姓名:"+name);}
}
2、Student类
package text;
public class Student extends Person {//添加student类的属性  学号 专业  成绩  private String sno;private String major;private double score;//创建student类的构造器public Student(String name,String sno,String major,double score){super( name);this.sno=sno;this.major=major;this.score = score; }//封装student类的属性public String getsno() {return sno;}public void setsno(String sno) {this.sno=sno;}public String getmajor() {return major;}public void setmajor(String major) {this.major = major;}public double getscore() {return score;}public void score(double score) {this.score=score;}public static void sort(Student[] stus) {//数组方法Student temp;for (int i = 0; i<stus.length-1;i++) {//冒泡比较for (int j=0;j<stus.length-i-1;j++) {if (stus[j].score < stus[j+1].score) {temp=stus[j];stus[j]=stus[j+1];stus[j+1]=temp;}}}}     //重写talk()方法public void talk() {super.talk();System.out.println("学号:"+sno);System.out.println("专业:"+major);System.out.println("成绩:"+score);}}
3、测试类
package text;
import java.util.Scanner;
public class studentInformation {@SuppressWarnings("resource")public static void main(String [] args){@SuppressWarnings("unused")Scanner input=new Scanner(System.in);System.out.print("请输入要录入的学生个数:");int numStudent=new Scanner(System.in).nextInt();Student[] stus = new Student[numStudent];//录入学生信息System.out.println("按要求输入学生信息");for(int i=0;i<numStudent;i++) {System.out.print("依次输入第"+(i+1)+"个学生的姓名学号专业成绩:");stus[i]=new Student(new Scanner(System.in).next(),new Scanner(System.in).next(),new Scanner(System.in).next(),new Scanner(System.in).nextDouble());}//调用排序方法Student.sort(stus);System.out.println("成绩录入完成,下面将按成绩的降序排序输出学生信息");System.out.println("------------------------------------------------------");//按成绩降序输出学生信息for (Student stu : stus) {stu.talk();}}
}

运行结果:

(4)编写一个复数类,具有实部、虚部成员变量,可以完成加、减、乘、获得实部和虚部等操作,并编写一个主类对其进行测试。

package complexTest;
import java.util.Scanner;
public class Complex { // 复数类double real;  // 实部double image; // 虚部Complex(){  // 不带参数的构造方法@SuppressWarnings("resource")Scanner input = new Scanner(System.in);double real = input.nextDouble();double image = input.nextDouble();Complex1(real,image);}public void Complex1( double real, double image) { // 供不带参数的构造方法调用this.real = real;this.image = image;}public Complex(double real,double image){ // 带参数的构造方法this.real = real;this.image = image;}public double getReal() {return real;}public void setReal(double real) {this.real = real;}public double getImage() {return image;}public void setImage(double image) {this.image = image;}Complex add(Complex a){ // 复数相加double real2 = a.getReal();double image2 = a.getImage();double newReal = real + real2;double newImage = image + image2;Complex result = new Complex(newReal,newImage);return result;}Complex sub(Complex a){ // 复数相减double real2 = a.getReal();double image2 = a.getImage();double newReal = real - real2;double newImage = image - image2;Complex result = new Complex(newReal,newImage);return result;}Complex mul(Complex a){ // 复数相乘double real2 = a.getReal();double image2 = a.getImage();double newReal = real*real2 - image*image2;double newImage = image*real2 + real*image2;Complex result = new Complex(newReal,newImage);return result;}public void print(){ // 输出if(image > 0){System.out.println(real + " + " + image + "i");}else if(image < 0){System.out.println(real + "" + image + "i");}else{System.out.println(real);}}
}
测试类
package complexTest;
public class ComplexTest { // 用于测试复数类public static void main(String[] args) {// TODO Auto-generated method stubSystem.out.println("请用户输入第一个复数的实部和虚部:");Complex data1 = new Complex();System.out.println("请用户输入第二个复数的实部和虚部:");Complex data2 = new Complex();// 以下分别为加减乘 Complex result_add = data1.add(data2);Complex result_sub = data1.sub(data2);Complex result_mul = data1.mul(data2);result_add.print();result_sub.print();result_mul.print();}
}

运行结果:

(5)定义一个抽象类Shape,该类有抽象方法area,圆形、矩形、梯形等均是一种Shape,也都有自己求area方法,定义这些类并写测试类进行测试

package area;
//抽象类
abstract class Shape
{public abstract Double calculateShape();
}
//Rectangle类class Rectangle extends  Shape
{private double length;private double 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;}//继承Shape类,实现getArea()方法public Double getArea() {return width*length;}
public Double calculateShape() {// TODO 自动生成的方法存根return null;
}
}//Circle类
class Circle extends Shape
{private double radius;public Circle(double radius) {this.radius = radius;}public double getRadius(){return radius;}public void setR(double radius) {this.radius = radius;}//继承Shape类,实现getArea()方法public Double getArea() {return Math.PI*radius*radius;}
public Double calculateShape() {// TODO 自动生成的方法存根return null;
}
}//trapezoid类
class Trapezoid  extends  Shape
{private double high;private double width1;private double width2;
public Trapezoid(double high, double width1,double width2)
{this.high =high;this.width1 = width1;this.width2 = width2;
}
public double getHigh()
{return high;
}public void setHigh(double high)
{this. high =  high;
}
public double getWidth1()
{return width1;
}public void setWidth1(double width1)
{this.width1 = width1;
}
public double getWidth2()
{return width2;
}public void setWidth2(double width2)
{this.width2 = width2;
}
//继承Shape类,实现Area()方法
public Double getArea()
{return (width1+width2)*high/2;
}
public Double calculateShape() {// TODO 自动生成的方法存根return null;
}
}测试类
package area;import java.util.Scanner;class Main {public static void main(String[] args) {Scanner sc=new Scanner(System.in);System.out.println("输出圆的半径:");double radius=sc.nextDouble();Circle circle=new Circle(radius);System.out.println("半径为:"+circle.getRadius()+"的圆面积为:"+circle.getArea());System.out.println("\n输出矩形的长和宽:");double length=sc.nextDouble();double width=sc.nextDouble();Rectangle rectangle=new Rectangle(length,width);System.out.println("长为:"+rectangle.getLength()+"宽为:"+rectangle.getWidth()+"的长方形面积为:"+rectangle.getArea()); System.out.println("\n输出梯形的高和上边、下边:");double high=sc.nextDouble();double width1=sc.nextDouble();double width2=sc.nextDouble();Trapezoid trapezoid=new Trapezoid(high,width1,width2);System.out.println("高为:"+trapezoid.getHigh()+"上边为:"+trapezoid.getWidth1()+"下边为:"+trapezoid.getWidth2()+"的梯形面积为:"+trapezoid.getArea());       }}

运行结果:

java实验2 对象、类、继承、包相关推荐

  1. Java中常用的类,包,接口

    Java中常用的类,包,接口 包名 说明 java.lang 该包提供了Java编程的基础类,例如 Object.Math.String.StringBuffer.System.Thread等,不使用 ...

  2. java实验系统常用类,Java的常用系统类

    Java的常用系统类Tag内容描述: 1.Java语言与JBuilder应用初步 第六章 常用的Java系统类,本章要点,字符串类 数值(Number)类及其子类 数组类 集合类 Object类,字符 ...

  3. java实验7 常用类的使用

    实验七  常用类的使用 实验目的 1. 了解类库的概念及API的使用方法. 2. 掌握常用类的使用方法. 实验学时 2学时 实验内容 1. 输入两个字符串str1.str2,统计字符串str2出现在s ...

  4. java实验报告 05 类与_java程序设计类与方法-java实验报告

    java程序设计类与方法-java实验报告 java程序设计类与方法-java实验报告 1. 实验内容或题目 (1) 编写Java应用程序,实现以下功能:当应用程序运行后,根据屏幕提示进行交互式输入并 ...

  5. Java中字符串工具类继承org.apache.commons.lang3.StringUtils类代码

    场景 转换为字节数组:是否包含字符串:替换掉HTML标签方法:替换为手机识别的HTML,去掉样式及属性,保留回车: 缩略字符串(不区分中英文字符):转换为Double类型:转换为Float类型:转换为 ...

  6. java为什么不推荐使用stack_栈和队列的面试题Java实现,Stack类继承于Vector这两个类都不推荐使用...

    在 thinking in java中看到过说Stack类继承于Vector,而这两个类都不推荐使用了,但是在做一到OJ题时,我用LinkedList来模拟栈和直接用Stack,发现在进行入栈出栈操作 ...

  7. java请编写公共类继承抽象类_(Java相关)怎么理解抽象类,继承和接口?

    著作权归作者所有. 商业转载请联系作者获得授权,非商业转载请注明出处. 作者:海子 来源:博客园 一.抽象类 在了解抽象类之前,先来了解一下抽象方法.抽象方法是一种特殊的方法:它只有声明,而没有具体的 ...

  8. 如何优雅的创建一个Java不可变对象类,JDK源码中也是这么干的!

    前面有篇文章当介绍了Java的不可变对象的一些特性,以及它的一些好处,但是并没有介绍如何实现一个不可变对象类.今天就来看看如何实现一个不可变对象类. Java中常用的不可变对象类 String类应该是 ...

  9. Java实验四:类和对象;类的继承和派生;多态性; 接口;构造器应用

    1. 编写一个应用程序,该程序中有 3 个类:Trangle.Leder 和Circle,分别用来刻画"三角形"."梯形"和"圆形".  要 ...

最新文章

  1. Orchard 的项目结构-解决方案文件夹的原理与使用
  2. 解决Cesium无法加载出地球的问题
  3. php 慢查询日志设置查看
  4. CodeForces - 1109A Sasha and a Bit of Relax(思维+异或和,好题)
  5. java模拟摇摆小球程序代码_Android实现左右摆动的球体动画效果
  6. mysql练习题练习
  7. 三招快速搞定 Linux 文件批量重命名!
  8. qt最大化和还原实现_Qt 窗口操作函数(置顶、全屏,最大化最小化按钮设置等)...
  9. 窝囊同事做测试三年未涨工资,被开当天,bat全部大佬门口迎接!
  10. tp摄像头的默认地址_tplink的ip默认地址是什么?
  11. 同比 数据模型 环比_同比(环比)在分析模型中的实现
  12. 农民股神六万元博出千万身家
  13. c++(标准模板库STL)
  14. JS中数组迭代方法(JavaScript从入门到疯癫)
  15. 计算机服务flash,Flash Player右下角弹广告flash helper service解决教程
  16. 前端学习——微信小程序
  17. 水浒歪传--郭德纲相声
  18. 把树莓派上chrome浏览器的缓存目录指定到SSD固态硬盘上
  19. 打印服务器spoolsv服务自动停止
  20. mysql怎么退出当前表_MYSQL基本操作--登陆退出,数据库、表、字段的创建、查看、删除、更改...

热门文章

  1. 强化学习之无模型方法一:蒙特卡洛
  2. 微信小程序里的request:ok的坑
  3. ISACA系列-CISA CISM CRISC CDPSE CGEIT维持政策分享
  4. STM32F103出现CPU could not be halted问题的解决方案
  5. 自备ACM模板 —— 其他技巧
  6. 单片机备用电池供电电路_两种实用的电池供电电路分析
  7. 暗影精灵2plus(GTX1070)安装Ubuntu双系统
  8. ios 输入法扩展_App Extension编程指南(iOS8/OS X v10.10):扩展类型--自定义键盘
  9. 闲鱼月赚过万的日常运营相关
  10. 天玑800能搭载鸿蒙系统吗,天玑800和麒麟980哪个好-天玑800和麒麟980对比评测