什么是对象呢,简单的说:万物皆对象.

  说到对象,就要说说什么是类了:类是对事物的一种抽象定义,将抽象之后的特征和行为有机结合便构成了类,类是具有共同特征和行为的一类事物的统称.

  举个简单的例子,人类就是一个类,那么每一个人就是具体的对象.对象本身是具体的,是客观存在的,而类则是一个抽象的概念,并非客观存在.理解类和对象之间的关系,首先需要 根据具有相同特征的对象抽象出一个类,再根据类的特征来描述具体的对象,例如,首先抽象出一个包含姓名,年龄,身高,体重的学生类,然后指定学生姓名为"小明",年龄20,身高170cm,体重60kg,指定了字段值后该学生就是一个具体的对象了.
image.png

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

namespace Ant11
{
    /// <summary>
    /// 
    /// </summary>
    class Program
    {
        static void Main(string[] args)
        {
            //实例化类, 也叫实例化对象
            Student student = new Student(); //向内存申请使用空间
            string str = student.name2;

            Console.WriteLine(str);
            str = "小冰";
            Console.WriteLine(str);
            Console.Read();


        }
    }
    /// <summary>
    /// 学生类
    /// 修饰符的作用: 保护类的安全 internal 让其他项目不能访问
    /// 修饰符的作用: 保护类的安全 public 让其他项目都能访问
    /// </summary>
    public class Student
    {
        //类成员: 属性、方法、字段变量 。。
        //定义字段变量
        string name = "小张";
        //private私有属性
        //public 共有属性
        private string name1 = "小王";
        public string name2 = "小李";

    }
}

类中set和get方法

    public class Student
    {
        //private(私有)---public(公开)访问修饰符
        //字段: "成员变量" , 一般用于类的内部做数据交互
        private string name;//Camel命名法
        public string Name //pascal命名法
        {
            get { return name; }//get方法,获取字段的值
            set { name = value; }//set方法,设置字段的值
        }
        private int age;//Camel命名法
        public int Age //pascal命名法
        {
            get { return age; }//get方法,获取字段的值
            
            set {
                //这里可以写逻辑方法判断
                if (value < 18)
                {
                    age = 18;
                }
                else
                {
                    age = value;
                }
                }//set方法,设置字段的值
        }

    }
    //自动属性 pro + tabll + tabll
    public int PhoneNumber { get; set; }

实例化方法和静态方法的区别

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

namespace Ant15
{
    /// <summary>
    /// 方法的定义和使用
    /// 方法:实例方法、静态方法(构造方法、抽象方法、虚方法、扩展法)
    /// 实例方法定义规范:访问修饰符,返回值类型 方法名(参数1, 参数2, 参数3)
    ///     {
    ///         //在这里写我们要做的事件
    ///         return 返回值(没有返回值就 不用写)
    ///     }
    /// 方法命名: Pascal命名法, 首字母大写
    /// 方法调用: 对象名.方法名(参数)
    /// 静态方法定义规范: 
    /// 与普通方法的区别
    /// 1. 加static表示静态方法
    /// 2. 调用区别: 类名.方法名
    /// 3. 静态方法只能调用静态成员
    /// 4. 非静态方法可以访问类中的任何成员
    /// 
    /// 静态方法和非静态方法最重要的区别: 内存开辟时间不一样,静态方法是程序运行时就开辟,
    /// 实例化方法--new的时候开辟
    /// </summary>

    class Program
    {
        static void Main(string[] args)
        {
            Calculate calculate = new Calculate(); //实例化类
            calculate.Print();//调用方法

            //有参数的调用
            int result = calculate.Add(5, 6);
            Console.WriteLine("计算结果为    " + result);
            Console.Read();
        }
    }
    /// <summary>
    /// 1. 方法是写在类里面
    /// </summary>
    public class Calculate
    {
        /// <summary>
        /// 实例化方法
        /// 无返回值,无参数方法
        /// </summary>
        public void Print()
        {
            //在这里写我们要做的事情
            Console.WriteLine("我要开始计算了");

        }
        /// <summary>
        /// 实例化方法
        /// 有参数有返回值方法
        /// 加法计算
        /// </summary>
        /// <param name="a">第一个参数</param>
        /// <param name="b">第二个参数</param>
        /// <returns></returns>
        public int Add(int a, int b)
        {
            int result = a + b;
            return result;
        }

        /// <summary>
        /// 静态方法
        /// 加static
        /// 
        /// </summary>
        /// <param name="a"></param>
        /// <param name="b"></param>
        /// <returns></returns>

        public static int delete(int a, int b)
        {
            int result = a - b;
            return result;
        }
    }
}