静态方法与实例方法
2007-10-24 14:19
302 查看
静态方法:使用了static修饰符修饰的方法是静态方法
实例方法:没有使用static修饰符修饰的方法是实例方法
实例方法可以使用类的任何成员。调用实例方法时,必须使用类的实例或对象来 引用。实例方法对类的某个给定的实例进行操作,在实例方法类可以使用this来访问该实例。调用实例方法时,必须先创建一个对象。
静态方法是一个特殊的成员方法,不属于类的某一个具体的实例或对象,而是属于类本身。静态方法不对特定实例进行操作,静态方法只能访问类中的静态成员,而不能使用实例成员。访问静态方法只能使用类名,而不需要创建对象,也不能使用对象名来引用。
using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication19
...{
class Account
...{
private decimal balance;
private string name;
public Account(string name)
...{
this.balance = 0;
this.name = name;
Print("开户",0);
}
public bool Deposit(decimal amount)
...{
if (amount == 0)
return false;
balance += amount;
Print("存入",amount);
return true;
}
public bool Withdraw(decimal amount)
...{
if (amount > balance || amount <= 0)
return false;
balance -= amount;
Print("取出",amount);
return true;
}
private void Print(string operation, decimal amount)
...{
Console.WriteLine("--------------------------");
Console.WriteLine("姓名:{0}",name);
Console.WriteLine("{0}:{1}",operation,amount);
Console.WriteLine("余额:{0}",balance);
Console.WriteLine("--------------------------");
}
public static void PrintBankInfo() //静态方法
...{
Console.WriteLine("--------------------------");
Console.WriteLine("XYZ 银行,电话:123456789");
Console.WriteLine("--------------------------");
Console.WriteLine(" 顾客至上 服务第一 ");
Console.WriteLine("--------------------------");
}
static void Main(string[] args)
...{
Account.PrintBankInfo(); //静态方法通过使用类名来引用
Account acc = new Account("张三");
bool succeed = acc.Deposit(100);
if (!succeed)
Console.WriteLine("存款失败");
succeed = acc.Withdraw(37);
if (!succeed)
Console.WriteLine("取款失败");
Console.ReadLine();
}
}
}
实例方法:没有使用static修饰符修饰的方法是实例方法
实例方法可以使用类的任何成员。调用实例方法时,必须使用类的实例或对象来 引用。实例方法对类的某个给定的实例进行操作,在实例方法类可以使用this来访问该实例。调用实例方法时,必须先创建一个对象。
静态方法是一个特殊的成员方法,不属于类的某一个具体的实例或对象,而是属于类本身。静态方法不对特定实例进行操作,静态方法只能访问类中的静态成员,而不能使用实例成员。访问静态方法只能使用类名,而不需要创建对象,也不能使用对象名来引用。
using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication19
...{
class Account
...{
private decimal balance;
private string name;
public Account(string name)
...{
this.balance = 0;
this.name = name;
Print("开户",0);
}
public bool Deposit(decimal amount)
...{
if (amount == 0)
return false;
balance += amount;
Print("存入",amount);
return true;
}
public bool Withdraw(decimal amount)
...{
if (amount > balance || amount <= 0)
return false;
balance -= amount;
Print("取出",amount);
return true;
}
private void Print(string operation, decimal amount)
...{
Console.WriteLine("--------------------------");
Console.WriteLine("姓名:{0}",name);
Console.WriteLine("{0}:{1}",operation,amount);
Console.WriteLine("余额:{0}",balance);
Console.WriteLine("--------------------------");
}
public static void PrintBankInfo() //静态方法
...{
Console.WriteLine("--------------------------");
Console.WriteLine("XYZ 银行,电话:123456789");
Console.WriteLine("--------------------------");
Console.WriteLine(" 顾客至上 服务第一 ");
Console.WriteLine("--------------------------");
}
static void Main(string[] args)
...{
Account.PrintBankInfo(); //静态方法通过使用类名来引用
Account acc = new Account("张三");
bool succeed = acc.Deposit(100);
if (!succeed)
Console.WriteLine("存款失败");
succeed = acc.Withdraw(37);
if (!succeed)
Console.WriteLine("取款失败");
Console.ReadLine();
}
}
}
相关文章推荐
- spring创建bean的三种方式-通过构造器,通过静态工厂方法,通过实例工厂方法
- 非静态方法的锁是实例对象本身(this),静态方法的锁是类对象本身(.class)
- 静态方法和实例方法联系与区别
- python学习笔记-实例方法、类方法、静态方法、属性方法
- JavaScript 学习笔记十四 this特性,静态方法 和实例方法,prototype
- python中的实例方法、静态方法、类方法、类变量和实例变量
- java 静态方法和实例方法的区别
- 静态方法、实例方法和域
- 静态方法和实例方法
- Ext学习笔记01 - NameSpace,类实例属性,类实例方法,类静态方法
- Java 之单实例与静态方法的工具集
- Java实例方法被覆盖,静态方法被隐藏
- Java基础重温(六)子类与父类实例方法、静态方法的重写问题
- [原创]java WEB学习笔记102:Spring学习---Spring Bean配置:bean配置方式(工厂方法(静态工厂方法 & 实例工厂方法)、FactoryBean) 全类名
- Spring使用教程(二)配置bean:静态工厂方法和实例工厂方法
- Final实例域、静态域、静态常量和静态方法
- c#中实例方法和静态方法的辨析与应用
- 静态方法中不能new内部类的实例对象的总结
- python中的实例方法、静态方法、类方法、类变量和实例变量浅析
- 今天发现c#中的实例后的对象是不能调用静态方法,以前学Java的时候是可以的.