手把手教我班小姐姐学java之面向对象

 2023-09-09 阅读 16 评论 0

摘要:真的光看不练假把式,编程主要还是打代码,就像我班这位小姐姐一样,看的不少,视频也看了,书也读了,就是写不出程序来。 木的办法,只能小白我来帮忙了!!! 例题1-简单继承 创建GeometricObject类,该

真的光看不练假把式,编程主要还是打代码,就像我班这位小姐姐一样,看的不少,视频也看了,书也读了,就是写不出程序来。

木的办法,只能小白我来帮忙了!!!
在这里插入图片描述

例题1-简单继承

创建GeometricObject类,该类有一个color属性,filled是是否填充,在这个测试中没有更改该属性值,默认为false,还有一个创建日期的函数。

public class GeometricObject {private String color = "white";private boolean filled;// java 日期private java.util.Date dateCreated;// 无参构造protected GeometricObject() {dateCreated = new java.util.Date();}// 含参构造protected GeometricObject(String color, boolean filled) {dateCreated = new java.util.Date();this.color = color;this.filled = filled;}// 私有属性的get和set方法public String getColor() {return color;}public void setColor(String color) {this.color = color;}// boolean 类型的get方法用ispublic boolean isFilled() {return filled;}public void setFilled(boolean filled) {this.filled = filled;}// 获取时间的方法public java.util.Date getDateCreated() {return dateCreated;}// 输出字符串,创建时间,形状的颜色,是否填充public String toString() {return "创建于" + dateCreated + "\n颜色是: " + color + " 是否填充: " + filled;}
}

不会java怎么面试?Circle类,继承几何类,有radius这个属性,可以根据该属性计算圆的面积、周长、直径。
因为我们使用含参和无参构造了两个函数,所以测试的时候可以直接传参或先用set方法更改参数再调用其他方法。

package a11;public class Circle extends GeometricObject {private double radius;// 无参构造和含参构造public Circle() {}public Circle(double radius) {this.radius = radius;}public double getRadius() {return radius;}public void setRadius(double radius) {this.radius = radius;}// 计算圆面积的方法public double getArea() {return radius * radius * Math.PI;}// 计算直径的方法public double getDiameter() {return 2 * radius;}// 计算圆周长的方法public double getPerimeter() {return 2 * radius * Math.PI;}public void printCircle() {System.out.println("The circle is created " + getDateCreated() +" and the radius is " + radius);}
}

测试类1,这里直接使用了含参的方法给circle的传入半径这个参数,也可以通过无参方法更改半径。

package a11;
public class TestCircleRectangle {public static void main(String[] args) {Circle  circle = new Circle(1);System.out.println("这个圆" + circle.toString());System.out.println("颜色是:" + circle.getColor());System.out.println("半径为:" + circle.getRadius());System.out.println("面积为:" + circle.getArea());System.out.println("直径为: " + circle.getDiameter());}
}

输出

这个圆创建于Sun Nov 22 08:38:41 CST 2020
颜色是: white 
是否填充: false
颜色是:white
半径为:1.0
面积为:3.141592653589793
直径为: 2.0

这里用半径set方法修改了半径为3

public class TestCircleRectangle {public static void main(String[] args) {Circle  circle = new Circle();circle.setRadius(3);System.out.println("这个圆" + circle.toString());System.out.println("颜色是:" + circle.getColor());System.out.println("半径为:" + circle.getRadius());System.out.println("面积为:" + circle.getArea());System.out.println("直径为: " + circle.getDiameter());}
}
这个圆创建于Sun Nov 22 08:41:39 CST 2020
颜色是: white 
是否填充:false
颜色是:white
半径为:3.0
面积为:28.274333882308138
直径为: 6.0

java模拟面试、注:

  1. 子类并不是父类的一个子集,子类通常比其父类包含更多的信息和方法
  2. 父类的private私有方法或属性是不能被其他类访问的,但可以用访问器getXxx()和修改器setXxx()进行修改。
  3. 继承关系是一种“is a”的关系,但不是所有 “is a”关系都要用继承。
  4. java中是不允许多重继承的,也就是一个子类只能继承一个父类。要想多重继承可以通过接口来实现。

构造方法链

在任何情况下,构造一个类的实例时,将会调用沿着继承链的所有父类的构造方法。当构造一个子类的对象时,该子类会再完成自己的任务之前,会先调用的父类的方法。如果父类继承于其他类,那么父类的构造方法优惠先调用他的非的构造方法。

public class Faculty extends Employee{public static void main(String[] args){new Faculty();}public Faculty(){System.out.println("我是Faculty类,我继承了Employee类");}
}
class Person {public Person(){System.out.println("我是person父类");}
}
class Employee extends Person{public Employee(){this("调用Employee的自身方法");System.out.println("我是Employee类,我继承了Person类");}public Employee(String s){System.out.println(s);}
}

上面的代码创建了三个类,由于main函数是该程序的主入口,先编译main方法。main方法中,new Faculty()调用Faculty的无参构造方法。由于Faculty继承了Employee,所以会先调用Employee的无参构造方法,该无参构造方法又先调用了Employee的第二个构造方法。由于Employee是Person的子类,所以在Employee的第二个构造方法中所有的语句执行之前,先调用person的无参构造方法。

综上,先输出person,再Employee的第二个含参构造方法,再一个无参构造方法,最后是Faculty的输出。

我是person父类
调用Employee的自身方法
我是Employee类,我继承了Person类
我是Faculty类,我继承了Employee类

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/2/27518.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息