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

木的办法,只能小白我来帮忙了!!!

例题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;}
}

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

注:

  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类

手把手教我班小姐姐学java之面向对象相关推荐

  1. 手把手教我班小姐姐学java之多态

    文章目录 多态 动态绑定 声明类型 实际类型 工作机制 对象转换和Instanceof操作符 概念: 隐式转换(向上转型.自动类型转换) 显式转换( 向下转型.强制类型转换) instanceof关键 ...

  2. 手把手教我班小姐姐学java之方法重写与方法重载

    方法重写 子类从父类中继承方法.有事,子类需要修改父类中定义的方法的实现,这就是方法重写. 重写的好处在于子类可以根据需要,定义特定于自己的行为. 在面向对象原则里,重写意味着可以重写任何现有方法.实 ...

  3. 猜字小游戏java方法体,手把手教你猜字小游戏,

    手把手教你猜字小游戏, package test07; import java.util.Scanner; //猜字符游戏 public class Guessing { //主方法 public s ...

  4. 手把手教你实现小程序中的自定义组件

    之前做小程序开发的时候,对于开发来说比较头疼的莫过于自定义组件了,当时官方对这方面的文档也只是寥寥几句,一笔带过而已,所以写起来真的是非常非常痛苦!! 好在微信小程序的库从 1.6.3 开始,官方对于 ...

  5. 手把手教搭建微信小程序教程

    小白式手把手教搭建微信小程序教程 宝塔软件商店下载如下:php7.3  Nginx 1.20.2  MySQL 8.0.24 phpMyAdmin 5.0 搭建准备1:一台服务器(压缩包里附购买教程) ...

  6. java 小程序 公众号_如何玩转小程序+公众号?手把手教你JeeWx小程序CMS与公众号关联...

    随着微信小程序新功能.新入口的不断更新,小程序的商业价值逐步增强,特别是小程序与公众号的深度融合,已经让小程序成为各行业新的营销渠道.Jeewx平台专注小程序的开发,逐步完善小程序生态圈,通过简单操作 ...

  7. dw2020表格不可见_【分享表格模板】手把手教你算小目标实际本金和综合年化收益率...

    By@阿常哟我在帖子快车真的太给力了!里分享过一次小目标投资收益的计算表格,当时在综合年化收益率的计算上有一点错误,我是粗暴地将单期的年化收益率累加.得出的数字大得惊人也不符合实际情况,所以我这次更新 ...

  8. 小学期学Java有感

    大二末的小学期,为期四周的时间将要学完Java这门课程. 由于已经有了C,C++,数据结构算法等基础,这门课的进度可谓飞快.从最初的HelloWorld到今天未完成的视频压缩,其间才过去了11天. 由 ...

  9. 手把手教你搭建开发环境之Java开发

    大家好呀,从今天开始,我们的手把手系列教程就正式开始啦. 如果你觉得本文对你有一些帮助,欢迎大家关注.点赞.分享给需要的小伙伴们,谢谢大家啦. 前言 Java虽然是一个比较老的语言,但到现在依然充满了 ...

最新文章

  1. 光遇自动弹琴脚本代码_光遇弹琴辅助软件下载-光遇自动弹琴脚本代码下载v1.0_86PS软件园...
  2. About Manhattan Length
  3. tomcat(15)Digester库
  4. HDU-5935 Car 逆推 贪心 精度
  5. Notepad++ 配置 Markdown
  6. android studio android 测试
  7. vba mysql_VBA连接Mysql数据库
  8. android 如何解锁屏幕,2解锁屏幕破裂Android手机的方法(自由方式)
  9. 华为服务器通过ilo虚拟光驱,如何通过ilo开启服务器远程桌面
  10. 上传本地项目到码云仓库【图文详解】
  11. MATLAB机器人工作空间三轴机器人scara
  12. 10计算机语言代表什么,win10是什么编程语言写的_win10史诗般的巨型编程项目
  13. 怎么理解什么是大数据呢?
  14. android 实现自动拍照,android实现定时拍照功能
  15. 计算机公式求时间差公式,excel 时间差计算方法
  16. [POI2005] SZA-Template
  17. 微信小程序动态绑定unit-id
  18. Buiness Partner 名词解析
  19. 【CCF会议期刊推荐】CCF推荐国际学术期刊/会议(人工智能)
  20. PIM-SM原理(ASM)

热门文章

  1. educoder实训平台java入门_educoder上的实训题目(学习-Java包装类之Byte类)
  2. python物理模拟_在Python游戏中模拟重力【Programming(Python)】
  3. java反射回调函数_java回调函数
  4. pythonrandint函数左闭右开_Python容器类型公共方法总结
  5. 计算机课程学习小结,计算机课程学习心得5篇___.docx
  6. #6034. 「雅礼集训 2017 Day2」线段游戏 李超树
  7. POJ1821 单调队列//ST表 优化dp
  8. docker基础——关于安装、常用指令以及镜像制作初体验
  9. Redis分布式缓存 教程以及DEMO
  10. 基于box2dWeb开发的切水果游戏总结