创建对象时直接初始化对象(设置值)



我在这里学习这门课程,这是现场演示

请问你几个问题,因为我想确认我正在理解我正在阅读的内容:

1(为什么在下面的代码中创建对象时直接设置值

Transaction t1 = new Transaction("8877", "6/25/2018");

而不是像下面那样做;这在!!

不起作用
Transaction transac1 = new Transaction();
transac1.("1234", "2019/10/03");

2(public Transaction() {public Transaction(string c, string d)重载概念吗?

3( 下面是使用重载的构造函数方法吗?

public Transaction()
{
tCode = " ";
tDate = " ";
}

4(为什么事务类没有属性,即使我只看到下面两个带有私有访问修饰符的字段/变量。而我在 OOP 书中读到,您必须始终使用属性来不从外部公开字段。

private string tCode;
private string tDate;
public interface ITransactions
{
// interface members
void showTransaction();
}
public class Transaction : ITransactions
{
private string tCode;
private string date;
public Transaction()
{
tCode = " ";
date = " ";
}
public Transaction(string c, string d)
{
tCode = c;
date = d;
}
public void showTransaction()
{
Console.WriteLine("Transaction ID: {0}", tCode);
Console.WriteLine("Date: {0}", date);
}
}
class Tester
{
static void Main(string[] args)
{
Transaction t1 = new Transaction("8877", "6/25/2018");
Transaction t2 = new Transaction("5656", "7/25/2018");
t1.showTransaction();
t2.showTransaction();
Console.ReadKey();
}
}

1(

[...]这在!!

不起作用
Transaction transac1 = new Transaction();
transac1.("1234", "2019/10/03");

是的,这根本不起作用,它是无效的语法。要么调用构造函数new Transaction();,要么调用new Transaction("8877", "6/25/2018");

2(

public Transaction() {public Transaction(string c, string d)是重载概念吗?

是的。

3(

下面是使用重载的构造函数方法吗?

[...]

没有"构造函数方法"这样的东西。你有构造函数和方法,但没有任何"构造函数方法"。

4(

为什么Transaction类没有属性,即使我只看到下面两个带有私有访问修饰符的字段/变量。

无需公开具有公共属性的所有私有字段。不需要拥有任何私有字段的公共属性。如果您不想提供对类中任何数据的此类访问权限,则不需要这样做。在这种情况下,您只需要showTransaction().

最新更新