- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个程序,可以在其中计算并打印汽油里程信息。我正在处理的作业希望我(好吧,我认为它希望我)使用 OOP、构造函数和对象将变量从构造函数传递到我的整个程序。这对我来说完全没有意义。
以下是具体的分配说明: https://drive.google.com/file/d/1D1FZKHrU4duu1UyWusPvsjVum33B8kdt/view?usp=sharing
我尝试在主方法中将原始变量设为私有(private)静态变量,并将它们放置在类头的正下方。这有效,但我认为指令希望我的构造函数以某种方式包含变量。这对我来说根本没有任何意义。我没有得到任何构造函数或对象以及如何在这个应用程序中使用它们,这让我非常沮丧。
CarV3,指令根据我应该面向对象的方式引用的程序,看起来像这样:
public class CarV3 {
public static int calcDistance(int sMiles1, int eMiles1){
return eMiles1 - sMiles1;
}
public static double calcMPG(int dist1, double gals1){
return dist1 / gals1;
}
public static void main(String[]Args) {
int sMiles1 = 43305;
int eMiles1 = 43422;
int dist1;
double gals1 = 7.8;
double MPG1;
String carType1 = "14 Acura MDX";
CarV3 car1 = new CarV3();
dist1 = car1.calcDistance(sMiles1, eMiles1);
MPG1 = car1.calcMPG(dist1, gals1);
System.out.printf("%52s%n%s%16s%14s%13s%12s%14s%n%s%n", "Gas Mileage Calculations", "Type of Car", "Start Miles", "End Miles", "Distance", "Gallons", "Miles/Gal",
"================================================================================");
System.out.printf("%s%15d%14d%13d%12.1f%14.1f", carType1, sMiles1,
eMiles1, dist1, gals1, MPG1);
}
}
该代码以前有效。指令要求稍后计算 GPM 和其他数据,所以我的程序在 CarV5 中变得更像这样:
public class CarV5 {
private static int sMiles1 = 43266;
private static int eMiles1 = 43422;
private static int dist1;
private static double gals1 = 7.8;
private static double MPG1;
private static double pricePerGallon1 = 2.98;
private static double GPM1;
private static double totalCost1;
private static String carType1 = "14 Acura MDX";
CarV5() {
}
public int calcDistance(int sMiles1, int eMiles1){
return eMiles1 - sMiles1;
}
public static double calcMPG(int dist1, double gals1){
return dist1 / gals1;
}
public static double calcGPM(int dist1, double gals1) {
return gals1 / dist1;
}
public static double totalCost(double pricePerGallon1, double gals) {
return pricePerGallon1 * gals;
}
public static void main(String[]Args) {
CarV5 car1 = new CarV5();
dist1 = car1.calcDistance(sMiles1, eMiles1);
MPG1 = car1.calcMPG(dist1, gals1);
GPM1 = car1.calcGPM(dist1, gals1);
totalCost1 = car1.totalCost(pricePerGallon1, gals1);
System.out.printf("%70s%n%s%16s%14s%13s%12s%10s%9s%14s%13s%n%s%n", "Gas Mileage Calculations", "Type of Car", "Start Miles", "End Miles", "Distance", "Gallons", "Price", "Cost", "Miles/Gal", "Gal/Mile", "================================================================================================================");
System.out.printf("%s%15d%14d%13d%12.1f%10.2f%9.2f%14.1f%13.3f", carType1, sMiles1, eMiles1, dist1, gals1, pricePerGallon1, totalCost1, MPG1, GPM1);
}
}
虽然这段代码有效,但我几乎肯定这不是说明要求我做的事情。老实说,我不明白说明要我做什么。您看到的程序确实打印了预期的结果,即所有汽车数据。但是,在说明中,我被告知要使用某种带有值的构造函数。如果您注意到在第二个版本中我有这个“CarV5() {}”,我不明白它的作用。
正如前面提到的,在我的程序的第二个版本 CarV5 中,预期输出是正确的。表格打印出距离、加仑等的计算值。
我的方法有问题。我对这篇超长的帖子感到抱歉,但是我也在参加这门类(class)的 friend 们认为我已经超出了被教导的范围,如果我说实话,也许我也是。我只是想知道如何做到这一点。
最佳答案
好吧,我不确定赋值是什么,因为它无法访问,但我认为他们希望您创建一个带有字段的类,这些字段将在对象创建期间在构造函数中设置。让我举一个简单的例子:
package tst;
public class CarTest {
public static void main(String[] args) {
// creating new instance of the Car and at once setting all its fields in constructor
// now as I see the assignment, this line corresponds to
// CarV5 car1 = new CarV5(carType1, endMiles1, startMiles1, gallonsUsed1, pricePerGallon1);
Car car = new Car(43266, 43422, 7.8);
//calculating and printing the result w/o providing values but using instance fields
System.out.println(car.calcDistance());
}
// the Car class itself, you can put it in different file
public static class Car {
// note that fields are NOT static, i.e. they belong to an INSTANCE of the class, not the class itself
private int sMiles1;
private int eMiles1;
private double gals1;
//
public Car(int sMiles1, int eMiles1, double gals1) {
this.sMiles1 = sMiles1;
this.eMiles1 = eMiles1;
this.gals1 = gals1;
}
// example of your methods
public int calcDistance(){
return this.eMiles1 - this.sMiles1;
}
// other methods you need
}
}
请告诉我这是否有帮助:)PS:我认为让您感到困惑的是静态与实例方法,请尝试刷新类(class)的这一部分或使用其他来源(=google:))
关于java - 如何使用 OOP、构造函数和对象将变量传递给方法和主方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54465947/
我的一位教授给了我们一些考试练习题,其中一个问题类似于下面(伪代码): a.setColor(blue); b.setColor(red); a = b; b.setColor(purple); b
我似乎经常使用这个测试 if( object && object !== "null" && object !== "undefined" ){ doSomething(); } 在对象上,我
C# Object/object 是值类型还是引用类型? 我检查过它们可以保留引用,但是这个引用不能用于更改对象。 using System; class MyClass { public s
我在通过 AJAX 发送 json 时遇到问题。 var data = [{"name": "Will", "surname": "Smith", "age": "40"},{"name": "Wil
当我尝试访问我的 View 中的对象 {{result}} 时(我从 Express js 服务器发送该对象),它只显示 [object][object]有谁知道如何获取 JSON 格式的值吗? 这是
我有不同类型的数据(可能是字符串、整数......)。这是一个简单的例子: public static void main(String[] args) { before("one"); }
嗨,我是 json 和 javascript 的新手。 我在这个网站找到了使用json数据作为表格的方法。 我很好奇为什么当我尝试使用 json 数据作为表时,我得到 [Object,Object]
已关闭。此问题需要 debugging details 。目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and the
我听别人说 null == object 比 object == null check 例如: void m1(Object obj ) { if(null == obj) // Is thi
Match 对象 提供了对正则表达式匹配的只读属性的访问。 说明 Match 对象只能通过 RegExp 对象的 Execute 方法来创建,该方法实际上返回了 Match 对象的集合。所有的
Class 对象 使用 Class 语句创建的对象。提供了对类的各种事件的访问。 说明 不允许显式地将一个变量声明为 Class 类型。在 VBScript 的上下文中,“类对象”一词指的是用
Folder 对象 提供对文件夹所有属性的访问。 说明 以下代码举例说明如何获得 Folder 对象并查看它的属性: Function ShowDateCreated(f
File 对象 提供对文件的所有属性的访问。 说明 以下代码举例说明如何获得一个 File 对象并查看它的属性: Function ShowDateCreated(fil
Drive 对象 提供对磁盘驱动器或网络共享的属性的访问。 说明 以下代码举例说明如何使用 Drive 对象访问驱动器的属性: Function ShowFreeSpac
FileSystemObject 对象 提供对计算机文件系统的访问。 说明 以下代码举例说明如何使用 FileSystemObject 对象返回一个 TextStream 对象,此对象可以被读
我是 javascript OOP 的新手,我认为这是一个相对基本的问题,但我无法通过搜索网络找到任何帮助。我是否遗漏了什么,或者我只是以错误的方式解决了这个问题? 这是我的示例代码: functio
我可以很容易地创造出很多不同的对象。例如像这样: var myObject = { myFunction: function () { return ""; } };
function Person(fname, lname) { this.fname = fname, this.lname = lname, this.getName = function()
任何人都可以向我解释为什么下面的代码给出 (object, Object) 吗? (console.log(dope) 给出了它应该的内容,但在 JSON.stringify 和 JSON.parse
我正在尝试完成散点图 exercise来自免费代码营。然而,我现在只自己学习了 d3 几个小时,在遵循 lynda.com 的教程后,我一直在尝试确定如何在工具提示中显示特定数据。 This code
我是一名优秀的程序员,十分优秀!