C#之面向对象

刚刚学习UML时对 面向对象设计 有初步大概的了解,于是乎小小的总结了篇  

面向对象概述,现在学完C#,面向对象分析有一进一步的理解,拿出来分享一下。

_________________理解有限,错误不足处请指点。


C#语言是一种现代、面向对象的语言。面向对象程序设计方法提出了一个全新的概念:类,它的主要思想是将数据(数据成员)及处理这些数据的相应方法(函数成员)封装到类中,类的实例则称为对象。









对象

审查它的性质和行为

封装:良好的封装能减少耦合;类内部的事项可以自由的修改;类具有清晰的对外接口

继承:后一代继承前一代的功能并有所发展

接口:对外接口是稳定,内部代码是改变的

修饰符:可见


C#之面向对象_第1张图片

访问控制权限

C#之面向对象_第2张图片

类与对象的关系

类的实例化就是对象

=蓝图 

蓝图实现就是实际物

定义了一个“模板”通过这个“模板”生成一个或多个对象

实例化(Instantiation

 

对象/对象引用

对象变量保存的仅仅是对象的一个引用,不是对本身

静态类成员

静态(Static)中的成员不属于任何对象



对象时类在内存中的实体,类不但用于描述对象在内存中的数据, 还包括处理这些数据的函数。类是对数据和处理数据的方法(函数)的封装。类是对某一类具有相同特性和行为的事物的描述。也就说类用于定义对象的长相。
    类的成员:变量、方法、属性、事件、常数

现在我们来定义一个Person类,该此类实例化

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

namespace Person
{
    class Person
    {
        private String name="田七";//类的数据成员声明
        private int age=20;
        public void Display()//类的方法(函数)声明,显示姓名和年龄
        { 
            Console.WriteLine("姓名:{0},年龄:{1}",name,age);
        }
        public void SetName(string PersonName)//指定修改姓名的方法(函数)
        { 
            name=PersonName;
        }
        public void SetAge(int PersonAge)//指定修改年龄的方法(函数)
        { 
            age=PersonAge;
        }
        public Person(string Name,int Age)//构造函数,函数名和类同名,无返回值
        { 
            name=Name;
            age=Age;
        }
        public Person()        //类的构造函数重载
        {
            name = "王五";
            age = 23;
        }
        class Class
        {
            static void Main(string[] args)
            {
                Person OnePerson = new Person ("张三",21);    //生成类的对象
                OnePerson .Display ();
                OnePerson .SetName ("李四");
                OnePerson .SetAge (22);
                OnePerson .Display ();
                OnePerson =new Person ();
                OnePerson .Display ();

            }

        }
        
    }
}
在类(class)中,不能直接修改Person类中的私有成员

     OnePerson.name="王五"; 

通过Person类中公有方法SetName 修改Person类中的私有成员name.

析构函数:用语句Person OnePerson=new Person("李四",30)生成对象时,将调用有参数的构造函数,而用语句Person OnePerson=new Person()生成对象时,调用无参数的构造函数。由于析构函数无参数,因此,析构函数不能重载。

运行后的结果:

C#之面向对象_第3张图片


动手敲个小例子,可以将知识有效的调用出来。

总结的不是很好,知识有点散乱………………




你可能感兴趣的:(C#之面向对象)