using System;
using System.Collections.Generic;
using System.Text;
namespace Class_test
{
public class Person
{
//字段,属性,方法,构造函数
//字段,存储数据
//属性,保护字段
//方法,描述对象的行为
//构造函数:初始化对象(给对象的每个属性依次赋值)
//类中的成员,如果不加修饰符,默认都是 private
string _name;
/// <summary>
/// 属性的本质就是2个方法,set和get
/// </summary>
public string Name //如果在set中限定,则修改的是value的值
{
get { return _name; }
set {
if (value != "孙权")
{
value = "孙权";
}
_name = value; }
}
int _age;
public int Age //如果在get中限定,则修改的是字段的值
{
get {
if (_age < 0 || _age > 100)
{
return _age = 0;
}
return _age; }
set { _age = value; }
}
char _gender;
public char Gender //属性是扳手
{
get { return _gender; }
set { _gender = value; }
}
//this:当前类的对象
//this:调用当前类的构造函数
public void SayHello() //没有static,证明是 非静态方法/实例方法
{
string Name = "小猪"; //局部变量
Console.WriteLine(
"他的名字是{0}, 年龄是{1}岁, 性别是{2}",
this.Name, this.Age, this.Gender);//三个实例成员,最好使用this
}
private static readonly int _id = 22; //静态成员
//静态方法只能访问静态成员
public static void SayHello_2()
{
Console.WriteLine("我是方法2静态方法,我的ID是{0}", _id);
}
//构造函数:1,没有返回值,连void都没有
// 2,构造函数名和类名一样
// 3,将传进来的参数的值分别赋予给属性
public Person(string name, int age, char gender)
{
this.Name = name;
this.Age = age;
//在构造函数中限定
if(gender != '男' && gender != '女')
{
gender = '男';
}
this.Gender = gender;
}
//构造函数的重载
public Person(string name, char gender):this (name,0,gender)
{
//this.Name = name;
//this.Gender = gender;
}
}
}
using System;
namespace Class_test
{
class Program
{
static void Main(string[] args)
{
Person zsPerson = new Person("张三",18,'女');
//new : 1,在内存中开辟一个空间 2,在开辟的空间创建对象 3,调用对象的构造函数
zsPerson.SayHello(); //非静态方法的调用
Person.SayHello_2();//静态方法的调用
//静态方法不能访问this.Name等非静态
//静态方法智能访问静态成员
Console.ReadKey();
}
}
}
C# 中的类
最新推荐文章于 2024-07-10 10:43:15 发布