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关键字中,并可以进行输入值验证        
	 }

例:

public class Student
	{
		private int age;   //私有字段,防止用户直接访问
		public int Age
		{
			get{return age;}  //用于读取age的值
			set
				{
				if((value>=18)&&(value<=45))
				age=value;  //为age赋值并验证
				else
				age=18;
				}
		}
	}

3、特殊属性:
a) 只读属性:
public 数据类型 属性名称

{
  	get{return 字段;}
}

b) 自动属性:

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

五、方法的参数
1、值参数:按值传递
2、引用参数:向方法传递实参在内存中的地址,按地址传递
3、输出参数:从方法传递回一个结果
关键字:out
4、数组型参数:参数只允许是一组数组,当方法的参数前带有params关键字时,就是带数组型参数的方法(使用引用传递)

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值