面向对象 字段、方法、属性

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _02面向对象复习
{
    class Program
    {
        static void Main(string[] args)
        {
            Person p = new Person();
            p.Age = -110;
            p.Name = "zhangsan";
            p.Gender = ‘中‘;
            p.SayHello();

            Person p2 = new Person();
            p2.Name = "李四";
            p2.Age = 88;
            p2.Gender = ‘女‘;
            p2.SayHello();
            Console.ReadKey();
        }
    }

    public class Person
    {
        //字段、属性、方法
        string _name;
        public string Name
        {
            get
            {
                //if (_name != "孙全")
                //{
                //    return _name = "孙全";
                //}
                return _name;
            }
            set { _name = value; }
        }
        int _age;
        public int Age
        {
            get { return _age; }
            set
            {

                //if (value < 0 || value > 100)
                //{
                //    value = 0;
                //}
                _age = value;
            }
        }
        char _gender;
        public char Gender
        {
            get
            {
              //  if (_gender != ‘男‘ && _gender != ‘女‘)
              //  {
              //      return _gender = ‘男‘;
              //  }

                return _gender;
            }
            set { _gender = value; }
        }

        public void SayHello()
        {
            Console.WriteLine("我叫{0},我今年{1}岁了,我是{2}生", this.Name, this.Age, this.Gender);
        }

    }

}

语法规则:

1属性:

属性结合了字段和方法的多个方面。对于对象的用户,属性显示为字段,访问该属性需要相同的语法。对于类的实现者,属性是一个或两个代码块,表示一个 get 访问器和/或一个 set 访问器。当读取属性时,执行 get 访问器的代码块;当向属性分配一个新值时,执行 set 访问器的代码块。不具有 set 访问器的属性被视为只读属性。不具有 get 访问器的属性被视为只写属性。同时具有这两个访问器的属性是读写属性。

2、字段

“字段”是直接在类或结构中声明的任何类型的变量。

3、方法

“方法”是包含一系列语句的代码块。程序通过“调用”方法并指定所需的任何方法参数来执行语句。在 C# 中,每个执行指令都是在方法的上下文中执行的。Main 方法是每个 C# 应用程序的入口点,在启动程序时由公共语言运行时 (CLR) 调用。

时间: 2024-10-10 09:28:02

面向对象 字段、方法、属性的相关文章

字段 | 方法 | 属性 | 类的成员 | Python

# ----------------------------------------- 字段 class Class: # 静态字段,属于类 # 已经创建,并且存放在类里,而不是每创建一个对象创建一次; country = '中国' def __init__(self, name): # 普通字段-->> 保存在创建的对象里 self.name = name # 普通方法-->> 保存在类里 def show(self): print(self.name) # 实例化对象 obj

Python类中的字段,方法,属性区别及StaticMethod, Property

类包含下列 静态属性 动态属性 静态方法 动态方法 class Province: #静态字段--属于类,调用方法类.字段名 memo = "中国23个省之一" #动态字段--属于对象,调用方式实例化对象.字段名 def __init__(self, name, capital, leader): self.Name = name self.Capital = capital self.Leader = leader #动态方法--属于对象 def sports_game(self):

python面向对象之方法

类成员:字段+方法+属性 字段:普通(实例对象,每个对象保存一次)+静态(全局变量,只保存一次,所有方法共享) 方法:普通方法(实例方法:self.fun())+类方法(@classmathod)+静态方法(所有方法分类) 属性:方法属性 #1普通方法:(使用较多) #encoding=utf-8 class Foo: def __init__(self, name): self.name = name def ord_func(self): """ 定义普通方法,至少有一个

[.net 面向对象编程基础] (9) 类的成员(字段、属性、方法)

[.net 面向对象编程基础] (9) 类的成员(字段.属性.方法) 前面定义的Person的类,里面的成员包括:字段.属性.方法.事件等,此外,前面说的嵌套类也是类的成员. a.类的成员为分:静态成员(static)和非静态成员 b.静态成员用static标识,不标识则默认为非静态成员 c.静态成员属于类所有,动态成员则属于实例所有,即对象 d.静态成员为类所有实例共享,无论类有多少实例或副本,静态成员只占用存中一块区域.非静态成员则在类的每个实例,都创建一个内存域. 下面主要说明一下类的主要

C#中的类:字段、属性、方法

C++的类中可以有三种内容:成员变量.成员函数和友元. 一般来说,成员变量描述类的属性,成员函数描述类的操作,友元则是一种特殊的声明,被声明为友元的函数或类可以操作自己的私有成员变量和成员方法. 在Java中,类的成员有两类:属性,相当于C++的成员变量:方法,相当于C++的成员函数. 而在C#中,类的成员有四种:字段.属性.方法和事件(事件还没学到,暂缓解释). 字段相当于C++中的成员变量和Java中的属性,就是在类中定义的变量(可以是基本类型或引用类型),一般来说,字段都被定义为私有. 方

C# 常量,变量,字段,属性,方法

常量:指在程序编译时已经存在且在程序生命周期内不会发生改变的值,用const定义一个常量. private class TestA     --定义一个类时后边不加() { private const double Pi=3.14; private double GetPi()   --输出pi值得方法,后边带() { double t=pi; return t; } } 变量: 变量本身被用来存储特定类型的数据,可以根据需要随时改变变量中所存储的数据值.变量具有名称.类型和值.变量名是变量在程

C# 字段、属性、成员变量 [转载]

一.定义与作用 1.字段(field):是C#类级别定义的,和方法同一级别. 一般用来类内部进行访问,充当一种类中的"全局变量"角色:或者配合属性来使用 2.属性:同样是C#类级别定义的,一般是供外部类访问的. 3.成员变量:"全局变量",在类中定义的变量,区别于在方法中定义的局部变量.它与字段属性不是同一级别概念,字段,属性都可以叫做成员变量. 二.使用 class Basic { private string FieldVar;//这是字段,在当前类中调用 pr

字段与属性(c#)

对实现者来说像方法 对调用者来说像字段 可以将属性看成一种智能字段,属性就是字段与方法的扩展. 面向对象的一个原则就是数据封装,所以不能将字段以公有方式提供给外界. 就像上面例子不能给年龄赋负数,而不使用属性要给外界提供私有字段就得写两个get set 方法,用属性的话虽然使类型定义变得复杂了,但代码写起来却改善了许多.

C#.NET中的字段与属性_1

一个类中需要有描述这个类信息的数据,而存储这些数据的变量就成为字段. 字段默认的访问级别为private(只有本类可以直接访问),我们将其访问级别改为public,在其他类中就可以访问了. 字段和属性表示对象包含的信息,字段类似于变量,因为可以直接读取或设置他们. 属性是对字段的封装.属性可以对字段的访问进行控制,可以进行非法设置值的判断.属性并不存储数据,字段存储数据. 封装后,有一些字段我只能赋值,不能读取,有些只能读取,不能赋值,而且可以对传过来的值进行选择. 建议所有的字段不要写成pub