• c#类,方法,属性,对象


    一、相关概念:

    1、对象:现实世界中的实体(世间万物皆对象)

    2、类:具有相似属性和方法的对象的集合

    3、面向对象程序设计的特点:封装 继承 多态

    4、对象的三要素:属性(对象是什么)、方法(对象能做什么)、事件(对象如何响应)

    ☆相互关系:类是对象的抽象,对象是类的实例,类是一种抽象的分类,对象则是具体事物。

    比如如果车是一个类,某个人的一辆奔驰车就是一个对象,车的颜色质量就是它的属性,启动、停止这些动作则可以定义为车的方法。

    二、类的定义与语法

    1、定义类:

    [修饰符] class 类名  

    {

       类成员

    }

     

    2、类的访问修饰符:public internal

    a) public:可访问域是所在的程序和任何引用的程序 访问不受限制

    语法:

     public class 类名

     {

       类成员

     }

     

    b) internal:可访问域定义范围内 (默认访问修饰符)

    语法:

    (internal) class 类名

     {

       类成员

     }

     

    3、类成员:数据成员和字段

    a)  数据成员:字段和常量

    字段:变量

    声明:类型 字段名

    例:

    public class Persion
    {
        public string name;
    }

     

    b) 方法成员 (方法是类的行为,告诉我们类能够做什么,)

     实例方法:

    修饰符 返回值类型 方法名(参数列表)

     {

          方法体

     }

     修饰符:如:public、private、protected、internal

     返回值类型:若方法无返回值,则使用 void

    例:

    public class Example01  //实例方法

    {

        public void SayHello()  //定义一个无参无返回的方法

        { 

        Console.WriteLine("Hello There")

    }

    static void Main()

    {

    Example01 objA=new Example01()

    objA.SayHello()    //创建对象并调用方法

    }

    }

     

    静态方法:

    修饰符 static返回值类型 方法名(参数列表)  //增加了static关键字

     {

          方法体

     }

    例:

    public class Example01  //实例方法

    {

        public static void SayHello()  //定义一个静态方法

        { 

        Console.WriteLine("Hello There")

    }

    static void Main()

    {

    Example01.SayHello()    //不需要创建对象

    }

    }

     

    静态方法与实例方法的区别静态方法只与类有关,它不依赖于对象的存在而存在;实例方法则在对象存在后才能使用。

     

    4、成员的访问修饰符:public、private、protected、internal

     a)  public:公有成员

     b) private:私有成员

     c) protected:保护成员

     d) internal:内部成员

    例:

    代码如下

    复制代码

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

    namespace ConsoleApplication2
    {
        public class Employee
        {
            private float sum;
            public int day;
            public float wage;
            //定义方法输出工资信息
            public void Show()
            {
                sum = day * wage;
                Console.WriteLine("工作时间:{0},每天工资:{1},总工资:{2}",day,wage,sum);
            }
        }
        class Program
        {
            static void Main(string[] args)
            {
                Employee employee = new Employee();
                employee.day = 20;
                employee.wage = 50;
                //employee.sum:无法访问  因为它为私有成员
                //调用方法现实工资
                employee.Show();
            }
        }
    }

     

     

     

    三、实例化对象:关键字:new

    语法:

    类 对象名称=new 类();

     

    例:

    代码如下

    复制代码

    using System; 
    using System.Collections.Generic; 
    using System.Linq; 
    using System.Text; 
      
    namespace ConsoleApplication1 

        public class car 
        { 
            private string carName; 
            private string carType; 
            private int price; 
      
            public string CarName 
            { 
                get { return carName; } 
                set { carName = value; } 
            } 
            public string CarType 
            { 
                get { return carType; } 
                set { carType = value; } 
            } 
            
            public int Price 
            { 
                get { return price; } 
                set { price = value; } 
            } 
      
            public void  action() 
            { 
                Console.WriteLine("一辆名叫{0}车,型号是{1},价钱是:{2}",carName,carType,price); 
            } 
              
        } 
      
        //创建实例并访问字段和方法 
        class Program 
        { 
            static void Main(string[] args) 
            { 
                //创建car类的实例 
                car vehicle = new car(); 
               //给实例赋值 
                vehicle.CarName = "奔驰"; 
                vehicle.CarType = "XZ001"; 
                vehicle.Price = 1000000; 
      
                //调用方法 
                vehicle.action(); 
      
      
      
            } 
        } 
    }

     

    四、属性

    1、

     a) 概念:用于访问类的字段的成员

     b) 属性用途:保证数据安全,作数据的验证

     

    2、声明:

    访问修饰符 数据类型 属性名

    {

      get{return 字段;}  //读访问器,通过它外部用户可以读取属性的值

      set{字段=value;}  //写访问器,通过它外部用户可以为属性赋值,用户输入的值就存放在value关键字中,并可以进行输入值验证               

    }

    例:

     1 public class Student
     2 
     3 {
     4 
     5   private int age;   //私有字段,防止用户直接访问
     6 
     7   public int Age
     8 
     9   {
    10 
    11     get{return age;}  //用于读取age的值
    12 
    13     set
    14 
    15     {
    16 
    17       if((value>=18)&&(value<=45))
    18 
    19         age=value;  //为age赋值并验证
    20 
    21       else
    22 
    23         age=18;
    24 
    25     }
    26 
    27   }
    28 
    29 }

     

    3、特殊属性:

    a) 只读属性:

    public 数据类型 属性名称

    {

    get{return 字段;}

    }

    b) 自动属性:

    public 数据类型 属性名称{get;set;}

     

    五、方法的参数

    1、值参数:按值传递

    2、引用参数:向方法传递实参在内存中的地址,按地址传递

    3、输出参数:从方法传递回一个结果

    关键字:out

    4、数组型参数:参数只允许是一组数组,当方法的参数前带有params关键字时,就是带数组型参数的方法(使用引用传递)

  • 相关阅读:
    JAVA中的CAS
    深入介绍Java中的锁[原理、锁优化、CAS、AQS]
    Java并发之AQS详解
    Java线程池ThreadPoolExecutor使用和分析(一)
    LinkedBlockingQueue
    生产者消费者两种实现:wait/notifyAll和Lock/Condition
    Java并发编程:CountDownLatch、CyclicBarrier和 Semaphore
    jvm系列(1):JVM问答
    mysql不存在插入否则更新
    java.util.MissingResourceException: Can't find bundle for base name db, locale zh_CN
  • 原文地址:https://www.cnblogs.com/wsl96/p/13369348.html
Copyright © 2020-2023  润新知