方法
方法在类或结构中声明,声明时需要指定访问级别,返回值,方法名称及方法参数,方法参数放在括号中,并用逗号隔开。括号中没有内容表示声明的方法没有参数。
修饰符 返回值类型 方法名(参数列表){
//方法的具体实现
}
如果方法不需要返回一个值,则使用void关键字。
方法的定义必须在某个类中,定义方法时如果没有声明访问修饰符,方法的默认访问权限为private
如果定义的方法有返回值,则必须使用renturn关键字返回一个指定类型的数据。
public int ShowGoods(){
Console.writeLine("商品信息");
return 1;
}
方法的参数
传给方法的值叫实参
接收实参的变量叫形参
形参只在方法内部有效。
- 值参数
值参数就是在声明时不加修饰符的参数。它表明实参与形参之间按值传递。 - ref参数
ref参数使用形参按引用传递(即使形参是值类型),其效果是:在方法中对形参所做的任何更改都将反应在实参中。如果要使用ref参数,则方法声明和调用都必须显示使用ref关键字。
变量必须在传递之前赋值。 - out参数
定义输出参数,会导致参数通过引用来传递、 - params参数
声明方法时,如果有多个相同类型的参数,可以定义为params参数,params参数是一个一维数组,主要用来指定在参数数目可变时所采用的方法参数。
方法的重载
方法重载是指方法名相同,但参数的数据类型,个数,顺序不同的方法。
类的静态成员
共享的变量或者方法用static修饰,它们被称作静态变量和静态方法,也被称为类的静态成员,静态成员是属于类所有的,在调用时,不用创建类的对象,而且直接使用类名调用。
class Program{
public static int Add(intx, int y){
return x+y;
}
static void Main(string[] args){
Console.WriteLine("{0}+{1}={2}",23,43,Program.Add(23+34));
Console.ReadLine();
}
}
对象的创建及使用
在一类事物中抽象出某一个特例,通过这个特例来处理这类事物出现的问题。
Test test=new Test();
当使用new关键字创建对象后,可使用“对象.类成员”来获取对象的属性和行为。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace studyDaily
{
public class cStockInfo
{
public string FullName
{
get;
set;
}
public void ShowGoods()
{
Console.WriteLine("库存商品名称:");
Console.WriteLine(FullName);
}
}
class Program
{
static void Main(string[] args)
{
cStockInfo stockInfo = new cStockInfo();
stockInfo.FullName = "笔记本电脑";
stockInfo.ShowGoods();
Console.ReadLine();
}
}
}
对象的销毁
每个对象都有生命周期,当对象的生命周期结束时,分配给该对象的内存地址将会被回收。
垃圾:
- 对象引用超过其作用返回
- 将对象赋值为null
类与对象的关系
类是具有相同或相似结构、操作和约束规则的对象组成的集合,而对象是某一类的具体化实例,每一个类都是具有某些共同特征的对象的抽象。
继承
在程序设计中实现继承,表示这个类拥有它继承的类的所有公有成员或者受保护成员。在面向对象编程中,被继承的类称为父类或基类,实现继承的类称为子类或派生类
继承的实现
派生类可以继承基类原有的属性和方法,也可以增加原来基类所不具备的属性和方法,或者直接重写基类中的某些方法。
C#使用“:”来标识两个类的继承关系,继承一个类时,类成员的可访问性是一个重要的问题。派生类不能访问基类的私有成员,但是可以访问其公共成员。
父类和派生类可以访问protected成员。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace studyDaily
{
class Goods {
public string TradeCode { get; set; }
public string FullName { get; set; }
}
class JHInfo : Goods
{
public string JHID { get; set; }
public void showInfo()
{
Console.WriteLine("进货编号:{0}\n商品编号:{1}\n商品名称:{2}", JHID, TradeCode, FullName);
}
}
class Program
{
static void Main(string[] args)
{
JHInfo jh = new JHInfo();
jh.TradeCode = "T100001";
jh.FullName = "笔记本电脑";
jh.JHID = "JH0001";
jh.showInfo();
Console.ReadLine();
}
}
}
只支持单继承,不支持多重继承
base关键字
this关键字代表本类对象,base关键字代表父类对象。
base.property;//调用父类的属性
base.method();//调用父类的方法
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace studyDaily
{
class Computer //父类
{
public string sayHello()
{
return "欢迎使用!";
}
}
class Pad:Computer //子类:平板电脑
{
public new string sayHello()
{
//子类重写父类方法
return base.sayHello() + "平板电脑";
}
}
class Program
{
static void Main(string[] args)
{
Computer pc = new Computer();
Console.WriteLine(pc.sayHello());
Pad ipad = new Pad();
Console.WriteLine(ipad.sayHello());
Console.ReadLine();
}
}
}
访问父类成员只能在构造函数、实例方法、实例属性中进行。不能在静态方法中使用base
多态
类的多态性是通过在派生类中重写基类的虚方法来实现的。
方法在默认情况下不是虚拟的,但(除了构造函数以外)可以显式地声明为virtual,在方法前面加上关键字virtual,则成该方法为虚方法。
public virtual void Move(){
Console.WriteLine("交通工具都可以移动");
}
定义为虚方法后,可以在派生类中重写虚方法,重写虚方法使用override关键字
public override void Move(){
Console.WriteLine("火车都可以移动");
}
标签:Console,05,C#,System,参数,using,方法,public,随记
From: https://www.cnblogs.com/flyall/p/17196197.html