个人理财 Java编程:创建子类 - 傻瓜

Java编程:创建子类 - 傻瓜

视频: Spark视频王家林第12课:Scala函数式编程进阶(匿名函数、高阶函数、函数类型推断、Currying)与Spark源码鉴赏 2025

视频: Spark视频王家林第12课:Scala函数式编程进阶(匿名函数、高阶函数、函数类型推断、Currying)与Spark源码鉴赏 2025
Anonim

的人当你用Java编写一个面向对象的程序时,你首先考虑数据。你正在写账户。那么,账户是什么?您正在编写处理按钮点击的代码。那么按钮是什么?您正在编写一个计划,将薪资支票发送给员工。什么是员工?

在这个例子中,员工是有名字和职位的人。当然,员工还有其他的特点,但是现在坚持基础。这个清单中的代码定义了员工的意义。

<! --1 - >
import static java。郎。系统。出;公共类员工{私人字符串名称;私人字符串jobTitle; public void setName(String nameIn){name = nameIn;} public String getName(){return name;} public void setJobTitle(String jobTitleIn){jobTitle = jobTitleIn;} public String getJobTitle(){return jobTitle;} public void cutCheck double amountPaid){out。 printf(“支付给%s的订单”,名称);出。 printf(“(%s)*** $”,jobTitle);出。 printf(“%,。2fn”,amountPaid);}}

在清单中,定义了一个Employee类。你可以使用你在这里定义的内容,并扩展定义来创建新的,更专业化的类。因此,在下一个列表中,您将定义一个新类 - FullTimeEmployee类。

<! - 2 - >
public class FullTimeEmployee extends Employee {private double weeklySalary;私人双重收益; public void setWeeklySalary(double weeklySalaryIn){weeklySalary = weeklySalaryIn;} public double getWeeklySalary(){returns weeklySalary;} public void setBenefitDeduction(double benefitDedIn){benefitDeduction = benefitDedIn;} public double getBenefitDeduction(){return benefitDeduction;} public double findPaymentAmount( ){return weeklySalary - benefitDeduction;}}

查看清单,可以看到FullTimeEmployee类的每个实例都有两个字段:weeklySalary和benefitDeduction。但那些是每个FullTimeEmployee实例唯一的字段吗?不,他们不是。

第一行表示FullTimeEmployee类扩展了现有的Employee类。这意味着除了具有每周的薪资和福利待遇外,每个FullTimeEmployee实例还有两个其他字段:name和jobTitle。这两个字段来自Employee类的定义,您可以在第一个列表中找到它。

在第二个列表中,魔术字是 。当一个类扩展现有类时,扩展类将自动继承现有类中定义的功能。因此,FullTimeEmployee类 继承 名称和jobTitle字段。 FullTimeEmployee类还继承了Employee类中声明的所有方法 - setName,getName,setJobTitle,getJobTitle和cutCheck。 FullTimeEmployee类是Employee类的

子类 。 这意味着Employee类是FullTimeEmployee类的

超类 。你也可以用血亲来谈谈。 FullTimeEmployee类是Employee类的 子 ,Employee类是FullTimeEmployee类的 父 。 几乎(但不完全),就好像FullTimeEmployee类是由此列表中的代码定义的。这个代码是假的,但内容丰富。

import static java。郎。系统。出;公共类FullTimeEmployee {私人字符串名称;私人字符串jobTitle;私人双周刊沙利文;私人双重收益; public void setName(String nameIn){name = nameIn;} public String getName(){return name;} public void setJobTitle(String jobTitleIn){jobTitle = jobTitleIn;} public String getJobTitle(){return jobTitle;} public void setWeeklySalary public double getWeeklySalary(){return weeklySalary;} public void setBenefitDeduction(double DEDIn){benefitDeduction = benefitDedIn;} public double getBenefitDeduction(){return benefitDeduction;} public double findPaymentAmount(){return weeklySalary - benefitDeduction;} public void cutCheck(double amountPaid){out。 printf(“支付给%s的订单”,名称);出。 printf(“(%s)*** $”,jobTitle);出。 printf(“%,。2fn”,amountPaid);}}

为什么这个列表是伪代码?那么,这个列表和前面列表中的继承情况之间的主要区别是:子类不能直接引用其父类的私有字段。要对父类的私有字段执行任何操作,子类必须调用父类的访问器方法。

回到第二个列表中,调用setName(“Rufus”)将是合法的,但代码名称=“Rufus”不会。如果您相信上一次列出的所有内容,那么您可以认为FullTimeEmployee类中的代码可以使用name =“Rufus”。那么,它不能。

你不需要员工。你的硬盘上的Java文件编写扩展Employee类的代码。所有你需要的是文件员工。类。

Java编程:创建子类 - 傻瓜

编辑的选择

在QuickBooks Online中使用批发帐单 - 虚拟

在QuickBooks Online中使用批发帐单 - 虚拟

QuickBooks Online为会计专业人员提供免费程序。您可以注册批发价格计划,也可以免费使用QBOA。如果你选择这样做(这是一个不错的选择!),你将需要知道如何管理的事情。从您的批发帐单订阅中删除客户有时候,事情并不是这样...

基于零基础的预算与QuickBooks 2012 - 傻瓜

基于零基础的预算与QuickBooks 2012 - 傻瓜

零基预算是一个非常有用和常用的预算策略在使用QuickBooks 2012之前,您应该先了解一下。基于零的预算与顶级预算相反。零基预算从下到上工作。零基预算始于个人收入,费用,资产,负债和所有者权益账户。它检查一个特定的...

在Sage Timeslips中10个有用的键盘快捷键 - 虚拟键盘

在Sage Timeslips中10个有用的键盘快捷键 - 虚拟键盘

键盘快捷键可以是Sage Timeslips 。启动或保存一张单据,将昨天,今天或明天的日期插入日期字段,并用一个或两个按键打开和关闭定时器。以下是十大最爱。按下它做什么Ctrl + N开始一个新的投票,而工作在...

编辑的选择

可以在Photoshop Elements 11中的任意形状图层上绘制多个图形 - 虚拟模型

可以在Photoshop Elements 11中的任意形状图层上绘制多个图形 - 虚拟模型

Photoshop Elements 11中创建的任何形状图层上的图形。您可以按照与选择相同的方式添加,减去,排除重叠和相交形状。请遵循以下步骤:创建第一个形状后,在工具选项:添加到形状区域中选择一个状态按钮:...

使用读卡器将图像下载到Mac上 - 傻瓜

使用读卡器将图像下载到Mac上 - 傻瓜

您的相机可能有一个USB端口,电缆,您可以使用下载您的图像。这种方法使用相机电池电力,也相当缓慢。如果您使用读卡器,则会更快地将图像存入计算机。如果您下载了大量的图像,请考虑购买FireWire读卡器; ...

在Photoshop Elements 10中创建形状图层后,在Photoshop Elements 10中绘制多个图形 - 虚拟形状

在Photoshop Elements 10中创建形状图层后,在Photoshop Elements 10中绘制多个图形 - 虚拟形状

可以在该图层上绘制其他形状。您可以按照与选择相同的方式添加,减去,重叠和相交形状。请记住,当您在元素中创建一个形状时,您正在创建一个基于矢量的元素。向量在数学上描述形状。 ...

编辑的选择

在您的IOS应用程序中添加模态视图 - 在iPhone和iPad上虚拟视图

在您的IOS应用程序中添加模态视图 - 在iPhone和iPad上虚拟视图

对于那些希望用户(或用户想要)在应用程序流之外执行某些操作的情况非常适用。而不是使用带有后退按钮的导航控制器,而是显示一个模式视图,其中的控件允许用户选择一个动作或...

Android应用程序开发:你的Twitter应用程序的文件 - 傻瓜

Android应用程序开发:你的Twitter应用程序的文件 - 傻瓜

,这个Android Studio项目包含大约100个文件和大约170个不同的文件夹。要制作Android Twitter应用程序,您需要专注于该项目的MainActivity。 java文件。但其他一些文件需要注意。 Twitter4J API jar文件Android没有内置的通信支持...