class Program : CarClass1 //子類:父類 冒號表示繼承傻丝;
{
static void Main(string[] args)
{
CarClass BugattiCar = new CarClass();
BugattiCar.Name = "布加迪.威航";
BugattiCar.Brand = "布加迪";
BugattiCar.Speed = 350;
BugattiCar.Colour = "red";
BugattiCar.ShowMsg();
CarClass ferrariCar = new CarClass();
ferrariCar.Name = "法拉利.歐美亞";
ferrariCar.Brand = "法拉利";
ferrariCar.Speed = 300;
ferrariCar.Colour = "yellow";
ferrariCar.ShowMsg();
Console.ReadKey();
CarClass1 bujiadiCar = new CarClass1();
bujiadiCar.Name = "布加迪.威航";
bujiadiCar.Brand = "布加迪";
bujiadiCar.Speed = 388;
bujiadiCar.Colour = "Red";
string Str = CarClass1.Insurance;//常量的值是不能改變的
Console.WriteLine(CarClass1.Insurance);//直接打印
Console.WriteLine(Str);
bujiadiCar.Capactiy = 50;//注意類的設(shè)置;簡寫過程 set get 都要寫诉儒!
bujiadiCar.ShowMsg();
Console.WriteLine(bujiadiCar.Colour);
Console.ReadKey();
AnimalClass duck = new AnimalClass("鴨", 80, 90, "白色");
duck.ShowMsg();
//繼承
Program myProgram = new Program();
Console.WriteLine(myProgram.sex1);//獲取字段 protected 修飾符 只能通過子類的實例去獲绕乡帧;
FunctionClass fun = new FunctionClass();
Console.WriteLine(fun.ShowTestFun("張三", 100));//調(diào)用方法允睹,有返回值运准;
Console.WriteLine(fun.ShowTestFun("李四", 88));
fun.showTest(8888);//調(diào)用方法,沒有返回值
fun.ShouTest1(bujiadiCar);
MujiClass muji = new MujiClass("小小");
GongjiClass gongji = new GongjiClass();
gongji.chenJiao(muji);//傳參之前必須實例化
Console.ReadKey();
}
}
class AnimalClass
{
//--------字段--------
private string Animalname;
private int Animalweingth;
private int Animalheigth;
private string Aniamalcolour;
//-----------屬性---------------
public string Name
{
set { Animalname = value; }//set 設(shè)置值 Animalname=“鴨子”否則報錯
get { return Animalname; }//get 獲取值 Animalname.Name 否則報錯缭受;
}
public int Weigth
{
set { Animalweingth = value; }
get { return Animalweingth; }
}
public int Heigth
{
set { Animalheigth = value; }
get { return Animalheigth; }
}
public string Colour
{
set { Aniamalcolour = value; }
get { return Aniamalcolour; }
}
//---------------------方法----------------
public void Eatting()
{
Console.WriteLine("吃胁澳!");
}
public void Running()
{
Console.WriteLine("跑!");
}
public void Latting()
{
Console.WriteLine("拉翔米者!");
}
/// <summary>
/// 打印到控制臺
/// </summary>
public void ShowMsg()
{
Console.WriteLine("動物名稱:{0} 重量:{1}g 高度:{2}cm 顏色:{3}", Animalname, Animalheigth, Animalweingth, Aniamalcolour);
Console.WriteLine("具有以下能力:");
Eatting();
Running();
Latting();
}
//------------------------構(gòu)造函數(shù)-------------
public AnimalClass(string _name, int _weigth, int _heigth, string _colour)
{
Animalname = _name;
Animalheigth = _heigth;
Animalweingth = _weigth;
Aniamalcolour = _colour;
}
}
public class CarClass1//public 公開的類 不寫是只限當(dāng)前程序集使用 internal
{//類或結(jié)構(gòu)的默認(rèn)訪問類型是internal
//類中所有的成員韭畸,默認(rèn)均為private
/// <summary>
/// 汽車保險年限設(shè)置為常量
/// </summary>
public const string Insurance = "3年";//常量默認(rèn)靜態(tài)的;必須初始化賦值蔓搞;常量的值是不能改變的胰丁;
//---------------字段---------------
private string name;//名字
private string brand;//品牌
private string colour;//顏色
private int speed;//速度
//-----------構(gòu)造函數(shù)----------------通過構(gòu)造函數(shù)初始化相關(guān)值
public CarClass(string _name, string _brand, int _speed) {
this.name = _name;
this.brand = _brand;
this.speed = _speed;
}
//--------------屬性-------------------
//name屬性
public string Name
{
set { name = value; }
get { return name; }
}
//品牌屬性
public string Brand
{
set { brand = value; }
get { return brand; }
}
//速度屬性
public int Speed//上面是私有的,不賦值喂分;現(xiàn)在是公開的锦庸;
{
set
{
if (value > 0 && value <= 500)
{
speed = value;
}
else
{
Console.WriteLine("超出范圍!");
}
}
get { return speed * 2; }
}
//油箱容量L
public int Capactiy { set; get; }//系統(tǒng)默認(rèn)創(chuàng)建一個油箱容量字段
public string Colour
{
set
{ colour = value; }
get { return colour; }
}
//男女屬性
public string Sex
{
set
{
if (Sex == "男" || Sex == "女")
{
Sex = value;
}
else
{
Console.WriteLine("輸入錯誤蒲祈!");
}
}
get { return Sex; }
}
//受保護屬性
protected string sex1 = "女";
//-------------------方法-----------------
/// <summary>
/// 跑
/// </summary>
private void Run()
{
Console.WriteLine("汽車開動了甘萧!");
}
/// <summary>
/// 載人
/// </summary>
public void Manned()//注意private 和 public 的區(qū)別和應(yīng)用范圍;私有的梆掸,公開的扬卷,
{
Console.WriteLine("可以載人!");
}
/// <summary>
/// 屏幕顯示信息
/// </summary>
public void ShowMsg()
{
Console.WriteLine("汽車:{0} 品牌:{1} 顏色:{2} 速度:{3}km/h 油箱容量:{4}L", name, brand, colour, speed, Capactiy);
}
}
class FunctionClass
{
public string ShowTestFun(string name, int money)
{//有返回值的方法
string str = "";
str = name + "說今天星期四!";
return str;
}
//沒有返回值的方法
public void showTest(int money)
{
//方法體
Console.WriteLine("我身上有" + money + "元酸钦!");
}
public void ShouTest1(CarClass1 car)
{
Console.WriteLine("我的汽車是:" + car.Name);
}
}
class GongjiClass
{
private string name = "小明";
public const string tedian = "不能下蛋怪得!";
public string Name
{
set { name = value; }
get { return name; }
}
public void chenJiao(MujiClass muji)
{
Console.WriteLine(name + "公雞晨叫:太陽曬屁股了!!徒恋!起床下蛋了2隙稀!因谎!");
muji.xiaDan();
}
private GongjiClass()
{ //私有的函數(shù)不能被實例化基括,只能被當(dāng)前類使用
}
}
class MujiClass
{
private string name = "小花";
public string Name
{
set { name = value; }
get { return name; }
}
public void xiaDan()
{
Console.WriteLine(name + "母雞下蛋了!");
}
public MujiClass()
{//優(yōu)先級最高财岔,首先執(zhí)行 構(gòu)造函數(shù);
Console.WriteLine("正在實例化一個母雞");
}
public MujiClass(string muji)
{ //構(gòu)造函數(shù)可以重名 只有兩個構(gòu)造函數(shù)河爹,只有傳參不傳參
Console.WriteLine("正在實例化一個{0}母雞", muji);
}
}