zoukankan      html  css  js  c++  java
  • 13. c# 类与对象

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

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

      举个简单的例子,人类就是一个类,那么每一个人就是具体的对象.对象本身是具体的,是客观存在的,而类则是一个抽象的概念,并非客观存在.理解类和对象之间的关系,首先需要 根据具有相同特征的对象抽象出一个类,再根据类的特征来描述具体的对象,例如,首先抽象出一个包含姓名,年龄,身高,体重的学生类,然后指定学生姓名为"小明",年龄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;
            }
        }
    }
    
  • 相关阅读:
    Java本周总结1
    大一学期总结
    十二周编程作业
    第十一周编程总
    第十周作业
    第九周作业
    第八周编程作业
    第七周编程作业
    Hibernate异常:IllegalArgumentException
    org.hibernate.id.IdentifierGenerationException: Hibernate异常
  • 原文地址:https://www.cnblogs.com/gice/p/13025312.html
Copyright © 2011-2022 走看看