刚刚学习UML时对
面向对象设计
有初步大概的了解,于是乎小小的总结了篇
_________________理解有限,错误不足处请指点。
C#语言是一种现代、面向对象的语言。面向对象程序设计方法提出了一个全新的概念:类,它的主要思想是将数据(数据成员)及处理这些数据的相应方法(函数成员)封装到类中,类的实例则称为对象。
面向对象概述,现在学完C#,面向对象分析有一进一步的理解,拿出来分享一下。
_________________理解有限,错误不足处请指点。
C#语言是一种现代、面向对象的语言。面向对象程序设计方法提出了一个全新的概念:类,它的主要思想是将数据(数据成员)及处理这些数据的相应方法(函数成员)封装到类中,类的实例则称为对象。
对象
审查它的性质和行为
封装:良好的封装能减少耦合;类内部的事项可以自由的修改;类具有清晰的对外接口
继承:后一代继承前一代的功能并有所发展
接口:对外接口是稳定,内部代码是改变的
修饰符:可见
访问控制权限
类与对象的关系
类的实例化就是对象
类=蓝图
蓝图实现就是实际物
类
定义了一个“模板”通过这个“模板”生成一个或多个对象
实例化(Instantiation)
对象/对象引用
对象变量保存的仅仅是对象的一个引用,不是对本身
静态类成员
静态(Static)中的成员不属于任何对象
对象 | 审查它的性质和行为 封装:良好的封装能减少耦合;类内部的事项可以自由的修改;类具有清晰的对外接口 继承:后一代继承前一代的功能并有所发展 接口:对外接口是稳定,内部代码是改变的 修饰符:可见
访问控制权限
|
类与对象的关系 | 类的实例化就是对象 类=蓝图 蓝图实现就是实际物 |
类 | 定义了一个“模板”通过这个“模板”生成一个或多个对象 实例化(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()生成对象时,调用无参数的构造函数。由于析构函数无参数,因此,析构函数不能重载。
运行后的结果:
动手敲个小例子,可以将知识有效的调用出来。
总结的不是很好,知识有点散乱………………
现在我们来定义一个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()生成对象时,调用无参数的构造函数。由于析构函数无参数,因此,析构函数不能重载。
运行后的结果:
动手敲个小例子,可以将知识有效的调用出来。
总结的不是很好,知识有点散乱………………