面向对象--01复习

类里面:

字段、属性、方法、构造函数

字段:存储数据

属性:保护字段、对字段的取值和设值进行限定

方法:描述对象的行为

构造函数:初始化对象(给对象的每个属性依次的赋值)

类中的成员,如果不加访问修饰符,默认都是private

using System;

namespace 面向对象复习
{
    class Program
    {
        static void Main(string[] args)
        {
            Person zsPerson = new Person("张三",25,'');
            //new :1、在内存中开辟了一块空间 2、在开辟的空间中创建对象 3、调用对象的构造函数
            zsPerson.SayHello();//非静态类用对象点出来
            Person.SayHelloTwo();//静态类用类名直接点出来
            Console.ReadKey();
        }
    }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 面向对象复习
{
    class Person
    {

        ///类里面:
        //字段、属性、方法、构造函数
        //字段:存储数据
        //属性:保护字段、对字段的取值和设值进行限定
        //方法:描述对象的行为
        //构造函数:初始化对象(给对象的每个属性依次的赋值)
        //类中的成员,如果不加访问修饰符,默认都是private
        string _name;
        /// <summary>
        /// 属性的本质就是两个方法
        /// </summary>
        public string Name
        {
            get { return _name; }//取值
            set { 
                if(value !="孙权")
                {
                    value = "孙权";//这里是限定值的属性
                }                               
                _name = value; }//赋值
        }

        int _age;
        public int Age
        {
            get { return _age; }
            set { _age = value; }
        }

        char _gender;
        public char Gender
        {
            get { return _gender; }
            set { _gender = value; }
        }
        //this:1、当前类的对象
        //     2、调用当前类的构造函数

        public void SayHello()
        {
            string Name = "张三";
            Console.WriteLine("{0},{1},{2},{3}", Name,this.Name, this.Age, this.Gender);//非静态类里可以调用非静态成员和静态成员
                                                //上面这里加this跟不加this的区别就是为了区分局部变量跟属性
        }
        private static int _id;
        public static void SayHelloTwo()
        {
            
            Console.WriteLine("Hello 我是静态的");//静态类里无法调用非静态成员
        }

        //构造函数:1、没有返回值 连void也没有
        //          2、构造函数的名称跟类名一样
        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;
        }
    }
}

 

posted @ 2021-06-15 21:58  静态类  阅读(39)  评论(0)    收藏  举报