前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >java--第5章 面向对象编程

java--第5章 面向对象编程

作者头像
北山啦
发布2022-11-27 11:36:15
2370
发布2022-11-27 11:36:15
举报
文章被收录于专栏:北山啦的博客

实验目的:

1.了解对象与对象引用的关系。

2.掌握类的定义,熟悉属性、构造函数、方法的作用。

3.理解static的作用和使用方法。

实验内容:

1.设计一个顾客类Customer。

        2.设计一个名为Rectangle的类

        3.定义一个点(Point) 类用来表示三维空间中的点。

        4.编程计算一个点 ( Point 对象) 是否在圆 ( Cricle 对象)内。

        5.定义一个表示学生的类Student。

实验步骤:

1.顾客管理设计

1)定义一个顾客类Customer,要求有属性:

id:long型,代表编号

name:String类对象,代表姓名

age:int型,代表年龄

marry:boolen型,代表婚否(其中:true表示已婚,false表示未婚)

phone:String类对象,代表联系电话

2)方法有:

(1)Customer(long i,String n,int a,boolean m,String p):有参构造函数,分别初始化编号、姓名、年龄、性别和联系电话。

(2)public  String  toString():以“姓名:年龄:联系电话”的形式作为方法的返回值。

(3)getXX()方法:得到属性值的方法,其中XX表示类中的各属性名。

(4)setXX(dd)方法:各属性值设置方法,其中XX表示类中的各属性名。

(5)编写main函数对类进行测试。

源代码:

代码语言:javascript
复制
public class Customer {
    long id;
    String name;
    int age;
    boolean marry;
    String phone;

    Customer(long i,String n,int a,boolean m,String p){
        id = i;
        name = n;
        age = a;
        marry = m;
        phone = p;
    }


    public void set_id(long i){
        id = i;
    }
    public void set_name(String n){
        name = n;
    }
    public void set_age(int a){
        age = a;
    }
    public void set_marry(boolean m){
        marry = m;
    }
    public void set_phone(String p){
        phone = p;
    }


    public long get_id() {
        return id;
    }
    public String get_name() {
        return name;
    }
    public int get_age() {
        return age;
    }
    public boolean get_marry() {
        return marry;
    }
    public String get_phone() {
        return phone;
    }

    //以“姓名:年龄:联系电话”的形式作为方法的返回值。
    public String toString(){
        return "[编号:" + id + ", 姓名:" + name + ", 年龄:" + age + ", +是否结婚:"+marry+", +联系电话:" + phone +" ]";
    }

    public static void main(String[] args) {
        Customer c = new Customer(1,"张三",20,true,"110");
        System.out.println(c.toString());
        c.age = 19;
        c.id = 2;
        c.name = "李四";
        c.phone = "120";
        c.marry = false;
        System.out.println(c.toString());
    }
}

2.写一个名为Rectangle的类表示同一种颜色的矩形类。其成员属性包括宽width、高height,类属性包括颜色color(默认颜色是蓝色),width和height都是double型的,而color则是String类型的。要求该类具有:

1)使用构造函数完成各属性的初始赋值。

2)使用getter和setter的形式完成属性的访问及修改。

3)提供计算面积的getArea()方法。

4)合理的toString方法。

5)编写main函数对类进行测试。

源代码:

代码语言:javascript
复制
public class Rectangle {
    double width;
    double height;
    static String color = "蓝色";
    //使用构造函数完成个属性的初始赋值
    public Rectangle(double width, double height){
        this.width = width;
        this.height = height;
    }

    //使用getter和setter的形式完成属性的访问及修改
    public double getWidth() {
        return width;
    }

    public void setWidth(double width) {
        this.width = width;
    }

    public double getHeight() {
        return height;
    }

    public void setHeight(double height) {
        this.height = height;
    }

    public static String getColor() {
        return color;
    }

    public static void setColor(String color) {
        Rectangle.color = color;
    }
    //提供计算面积的getArea()方法
    public double getArea(){
        return width*height;
    }
    //合理的toString方法
    public String toString(){
        return "高:"+height+"\t宽"+width+"\t颜色:"+color+"\t面积:"+getArea();
    }

    public static void main(String[] args) {
        Rectangle r = new Rectangle(10,20);
        System.out.println(r.toString());
        r.width = 12;
        r.height = 8;
        r.setColor("红色");
        System.out.println(r.toString());
    }
}

3.定义一个点(Point) 类用来表示三维空间中的点 (有三个坐标),要求如下:

1)可以生成具有特定坐标的点对象。

2)提供可以设置三个坐标的方法。

3)提供可以计算该点距另外点距离平方的方法。

4)编写主类程序验证。

源代码:

代码语言:javascript
复制
public class Point {
    int x,y,z;
    public int getX() {
        return x;
    }
    public void setX(int x) {
        this.x = x;
    }
    public int getY() {
        return y;
    }

    public void setY(int y) {
        this.y = y;
    }

    public int getZ() {
        return z;
    }

    public void setZ(int z) {
        this.z = z;
    }



    public Point(int x, int y, int z) {
        super();
        this.x = x;
        this.y = y;
        this.z = z;
    }

    public double getDistance(Point p)
    {
        return (x-p.x)*(x-p.x)+(y-p.y)*(y-p.y)+(z-p.z)*(z-p.z);
    }

    public static void main(String[] args) {
        Point p1=new Point(0,0,0);
        Point p2=new Point(1,2,4);
        System.out.println("距原点的距离平方是:"+p2.getDistance(p1));
        System.out.println("距原点的距离平方是:"+p2.getDistance(new Point(2,4,4)));
        p2.setX(2);
        p2.setY(0);
        p2.setZ(0);
        System.out.println("修改坐标后,距任一点的距离平方是:" + p2.getDistance(p1));
    }

}

4. 编程计算一个点 ( Point 对象) 是否在圆 ( Cricle 对象)内。

1)设计一个类代表二维空间的一个点。

2)设计一个类Circle代表二维空间的一个圆,要求两个成员变量:一个是圆心,一个是半径。提供计算面积的方法。

3)为上述 Circle 类添加一个方法,计算一个点 ( Point 对象) 是否在圆 ( Cricle 对象)内,并写程序验证。

源代码:

代码语言:javascript
复制
import java.util.Scanner;
public class Circle {
    double x,y,z;
    //z为圆的半径,(x,y)为一点的坐标
    public Circle(double x,double y,double z){
        this.x = x;
        this.y = y;
        this.z = z;
    }
    public double get_area(){
        return Math.PI*z*z;
    }
    public boolean isIn (double m , double n) {//判断点是否在圆内,传入随便一点的坐标
        if( Math.pow(x-m,2) + Math.pow(y-n,2) >= Math.pow(z, 2)) {
            final boolean b = false;
            return b;
        } else {
            return true ;
        }
    }
    public static void main(String[] args) {
        Circle c = new Circle(1,2,3);
        System.out.println("圆的面积为:"+c.get_area());
        System.out.println("请输入x坐标:");
        Scanner sc = new Scanner(System.in);
        double m = sc.nextDouble();
        System.out.println("请输入y坐标:");
        double n = sc.nextDouble();
        if(c.isIn(m,n)){
            System.out.println("该点在园内");
        }else{
            System.out.println("该点不在园内");
        }
    }
}

5. 编写一个Java程序,定义一个表示学生的类Student,该类包括:

1)这个类的属性有:“学号”、“班号”、“姓名”、“性别”、“年龄”,每个属性的类型请参考构造方法。

2)为每个属性编写getter和setter方法。

3)编写构造方法为属性赋值。

public Student(long studentID,int classID,String name,String sex,int age)

4)为类Student增加一个方法public String toString(),该方法把Student类的对象的所有属性信息组合成一个字符串以便输出显示。

5)编写一个Java Application程序,创建Student类的对象,并验证新增加的功能。

源代码:

代码语言:javascript
复制
import java.awt.dnd.DragGestureEvent;

public class Student {
    long studentID;
    int classID;
    String name;
    String sex;
    int age;

    public long getStudentID() {
        return studentID;
    }

    public void setStudentID(long studentID) {
        this.studentID = studentID;
    }

    public int getClassID() {
        return classID;
    }

    public void setClassID(int classID) {
        this.classID = classID;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public Student(long studentID, int classID, String name, String sex, int age){
        this.studentID = studentID;
        this.classID = classID;
        this.name = name;
        this.sex = sex;
        this.age = age;
    }
    public String toString(){
        return "学号:"+studentID+"班号:"+classID+"姓名:"+name+"性别:"+sex+"年龄:"+age;
    }

    public static void main(String[] args) {
        Student s1 = new Student(22,2,"张三","男",20);
        Student s2 = new Student(23,3,"李四","男",21);
        System.out.println(s1.toString());
        System.out.println(s2.toString());

    }
}

实验小结

   通过本章学习:

  1. 类和对象的概念
  • 类:类是对对象的一种抽象描述,也就是说,类其实就是定义对象的一个模板,在这个模板里面充分描述了对象所具有的属性和行为
  • 对象:通过类具体创建出来的实体,就是对象,这些对象是可以拿来使用的,一个类可以创建出任意个相同的对象
  • 所以,在编写代码时,必须先编写类(Class),然后通过这个Class来创建对象,创建对象使用new关键字(例如:People p = new People())

了解对象与对象引用的关系,掌握类的定义,熟悉属性、构造函数、方法的作用,理解static的作用和使用方法。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-01-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 实验目的:
  • 实验内容:
  • 实验步骤:
  • 实验小结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档