參考了書上與網路上的範例,程式碼應該是正確的才是,
後來才發現,是自己的觀念錯誤,原來當初一直出現的
"類別、結構或介面成員宣告中無效的語彙基元"
是對於物件的基本概念錯誤,
這也多半也要歸咎於自己在學習時期,沒有打好基礎,只要程式碼能跑就好...
使得現在許多觀念一直要慢慢釐清才行。
以C#舉例來說,
*******************************************************
錯誤寫法↓***2022/06/09 update style for reading***
*******************************************************
namespace ConsoleApplication1
{
class MyClassOne
{
private int a = 100;
private float b = 100.001;
/*以下寫法完全錯誤,類別只能包含方法、屬性(另外兩個我還沒用過,
暫不解釋),以及子類別等,所以直接在類別裡宣告Console.WriteLine的話,
物件A是呼叫不到的*/
Console.WriteLine("整數、浮點數");
Console.WriteLine("a = " + a);
Console.WriteLine("b = " + b);
}
class Program
{
static void Main(string[] args)
{
MyClassOne A = new MyClassOne();
A.Console.WriteLine();
}
}
}
*******************************************************
正確寫法↓***2022/06/09 update style for reading***
*******************************************************
namespace ConsoleApplication1 //類似java的 package
{
class MyClassOne //宣告MyClassOne類別
{
//整數、浮點數
private int a = 100;
private float b = 100.001;
/*將Console.WriteLine()宣告在MyMethodOne()這個方法裡,
這時候物件A只要直接Call MyMethodOne就可以印出a, b的值了*/
public void MyMethodOne()
{
Console.WriteLine("整數、浮點數");
Console.WriteLine("a = " + a);
Console.WriteLine("b = " + b);
}
}
class Program
{
static void Main(string[] args)
{
MyClassOne A = new MyClassOne();
A.MyMethodOne();
}
}
}
我想似乎有點輪廓對於物件這回事兒了...
C# class中只能有Field, Property, Method(code expression), Event, Delgate。
若要使用Property,需要透過get 或 set,否則會失去屬性的保密性。
Ref: C#類別_參考MSDN
沒有留言:
張貼留言
問題沒有大小或好壞