在我关于ploymorphism的一篇教程幻灯片中,我看到这段代码有几条评论:
discountVariable = //will produce
(DiscountSale)saleVariable;//run-time error
discountVariable = saleVariable //will produce
//compiler error
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,它在第一个演示语句中表示它将产生运行时错误,而在另一个演示语句中它表示它将产生编译器错误.
是什么造成这些错误?以及他们彼此之间的差异?
我在幻灯片中看到了这一点,旨在说明构造函数.我现在很困惑,因为它有两个具有相同作业的构造函数接受在第二个中将gpa设置为零.为什么编码器需要重复this.id = id; this.name = name;?为什么这个类甚至需要两个构造函数?
class Student{
private int id;
private String name;
private double gpa;
public Student(int id, String name, double gpa){
this.id = id; this.name = name; this.gpa = gpa;
}
public Student(int id, String name){
this.id = id; this.name = name; gpa = 0.0;
}
public boolean equals(Student other){
return id == other.id && name.equals(other.name)
&& gpa == other.gpa;
}
public String toString(){
return name + " " + id + " " + …Run Code Online (Sandbox Code Playgroud) 我有这个代码,但它不起作用!
public class Trial
{
public static void main (String [] args)
{
int average;
int m = 0;
int [] nums = {1,6,8,9,10,60,72};
average = getAverage(int [] nums);
}
public static int getAverage(int [] a)
{
int sum = 0;
for(int i=0; i<a.length; i++)
sum = sum +a[i];
int avg = sum/a.length;
return avg;
}
}
Run Code Online (Sandbox Code Playgroud)
问题出在哪儿 ?我需要通过调用计算平均值的方法来获得该数组的平均值.
我看到了一个试图用Java解释继承的例子.Employee类是基类,它有三个实例变量和三个构造函数.它如下:
public class Employee{
private String name;
private int id;
public Employee(){
name = " No Name!";
id = 00100;
}
public Employee(String n, int i){
name = n;
id = i;
}
public Employee (Employee originalObject){
name = originalObject.name;
id = originalObject.id;
}
Run Code Online (Sandbox Code Playgroud)
我的问题是:第三个构造函数有什么意义?以及它如何接受Employee我们仍在处理的类的相同类型的参数?该计划已空的构造函数和另外一个,对于经过串name并int为id,为什么有一个额外的一个并不比前面两个构造得多?
我有一个名为Employee2个private变量的类,还包含所需的构造函数和其他必要的方法:
public class Employee {
private String name;
private int id;
public Employee() {
name = " No Name!";
id = 00100;
}
public Employee(String n, int i) {
name = n;
id = i;
}
public Employee(Employee originalObject) {
name = originalObject.name;
id = originalObject.id;
}
public String getName() {
return name;
}
public int getID() {
return id;
}
public void setName(String newName) {
if (newName == null) {
System.out.println("Fatal Error setting employee name!"); …Run Code Online (Sandbox Code Playgroud) 在这段代码中:
public static void main(String []args){
int [] a = {10, 20, 30};
if(m1(a))
m2(a, 0);
else
m2(a, 1);
for(int i = 0; i < a.length; i++)
System.out.println(a[i] + " ");
}
public static boolean m1(int [] a){
return a[0] == a[1] / 2;
}
public static void m2(int [] a, int b){
a[b] = 1;
}
}
Run Code Online (Sandbox Code Playgroud)
在m2什么线后return,这是a[0] == a[1] / 2什么?这是小鸡的声明吗?因为它会让人感到困惑return
我用自己的私有变量编写了我的类,然后我编写了访问这些变量所需的访问器和mutator方法,但是在编写主类后运行它时这不起作用.为什么会这样?请查看我的代码:
public class DateTest{
public static void main (String [] args){
Date d1 = new Date();
Date d2 = new Date();
d1.month = "February ";
d1.day = 13;
d1.year = 1991;
d2.month = "July";
d2.day = 26;
d2.year = 1990;
d1.WriteOutput();
d2.WriteOutput();
}
}
class Date {
private String month;
private int day;
private int year;
public String getMonth(){
return month;
}
public int getDay(){
return day;
}
public int getYear(){
return year; }
public void setMonth(String m){
if (month.length()>0) …Run Code Online (Sandbox Code Playgroud) 所以基本上我正在尝试使用 Access 设计我的简单员工/任务跟踪数据库。
Employee我想在表与表之间创建关系Mission(多对多)。因此,我需要创建一个桥梁或连接实体,我将其命名为Mission_Assignment。显然,两个相关表(Mission_ID和Employee_ID)的 PK 应作为外键包含在该桥接实体中。
当我尝试通过将 PK Mission_IDMission_Assignment拖到另一个表来加入时,Access 没有向我显示将此关系设置为一对多的选项,即使我已选中“强制引用完整性”框。我唯一的选择是“不确定”关系类型!Mission
我想知道为什么会发生这种情况?为什么我不能建立这种一对多的关系?我尝试使用查找向导更改相关表的 PK 的数据类型,以便在关联表中将其识别为外键,但它不起作用。
任何帮助,将不胜感激。
java ×7
methods ×4
arrays ×2
class ×2
constructor ×2
inheritance ×2
accessor ×1
compilation ×1
database ×1
erd ×1
foreign-keys ×1
if-statement ×1
ms-access ×1
mutators ×1