又到了总结知识的时刻了,今天在云和学院学习了类的运用,下面是今天所学知识的总结:

理论:

类的定义语法:

[访问修饰符] class 类名

{

成员;  // 1.通过字段来描述类别信息的变量

......   // 2.用方法定义一个类的动作

}

类中可以包含变量的定义、方法。
访问修饰符

private : 私有成员, 在类的内部才可以访问。

protected : 保护成员,该类内部和继承类中可以访问。

public : 公共成员,完全公开,没有访问限制。

internal: 当前程序集内可以访问。

字段默认的访问修饰符是:Private,修饰的字段只能在一个类的内部访问

类的实例化,用关键字new
– 语法: 类   实例名 = new 类();
类的成员的访问:

实例名.属性    实例名.方法名();

•字段、方法、属性(后面讲)都可以叫做类的成员Member,它们都需要定义访问级别。访问级别的用处在于控制成员在哪些地方可以被访问,这样达到面向对象中“封装”的目的.

Class可以被实例化,属于引用类型,是分配在内存的堆上的。类是引用传递的。

Struct属于值类型,是分配在内存的栈上的。结构体是复制传递的

对象初始化器: 类名.对象名=new 类名(){字段的赋值}
属性
•字段用public修饰的问题…用private
•属性的定义.get;set; (set 赋值,get取值)
•属性是为了保护与之相对应的字段的.保证对字段的读取和赋值符合要求.
•属性可分为:读写、只读、只写。

允许外部访问的变量一定要声明为属性

类的构造方法
•构造方法用来创建对象,并且可以在构造函数中对对象进行初始化。
•构造函数是用来创建对象的特殊方法,方法名和类名一样,没有返回值,连void都不用。
•构造函数可以有参数,new对象的时候传递函数参数即可
•如果不指定构造函数,则类有一个默认的无参构造函数。如果指定了构造函数,则不再有默认的无参构造函数,如果需要无参构造函数,则需要自己来写。
•构造函数可以重载,也就是有多个参数不同的构造函数。
使用构造方法能解决:

1)在赋初值时,重复的书写对象名

2)假如我们有一个属性,不允许用户随意改动.我们一般把这个属性定义为只读类型的属性.

那么这个只读类型的属性就不能在实例化后对他赋值了,那么我们如何对他初始化呢?我们

可以通过构造方来进行初始化.

我们定义好一个类,如果没有写构造方法,那么编译器就会自动在这个类中给我们添加一个没

有参数的构造方法.

一旦我们写了一个构造方法,那么编译器就不会再给我们添加这个没有参数构造方法了.

实操:

•请练习定义一个人类.人类分别用三个变量来表示姓名性别年龄,有一个吃饭的方法,有一个运动的方法.
首先在项目里添加类,并且定义
 
 调用类

定义一个学生类,有六个属性,分别为姓名、性别、年龄、语文、数学、英语成绩。

有2个方法:
–一个打招呼的方法:介绍自己叫XX,今年几岁了。是男同学还是女同学。
–两个计算自己总分数和平均分的方法。{显示:我叫XX,这次考试总成绩为X分,平均成绩为X分}
实化两个对象并测试:
–张三 男 18  三科成绩为:90 95 80
–小兰 女 16  三科成绩为:95 85 100
 class Student
{
string name;
public string Name
{
get { return name; }
set { name = value; }
}
string gender;
public string Gender
{
get { return gender; }
set { gender = value; }
}
int age;
public int Age
{
get { return age; }
set { age = 18; }
}
int chinese;
public int Chinese
{
get { return chinese;}
set { chinese = value;}
}
int math;
public int Math
{
get { return math; }
set { math = value;}
}
int english;
public int English
{
get { return english; }
set { english = value; }
}
//一个打招呼的方法:介绍自己叫XX,今年几岁了。是男同学还是女同学。
//两个计算自己总分数和平均分的方法。{显示:我叫XX,这次考试总成绩为X分,平均成绩为X分}
public void SayHi()
{
Console.WriteLine("我叫{0},今年{1}岁了,是{2}同学",name,age,gender);
}
public void Score()
{
int sum = 0;
int avg = 0;
sum = chinese + math + english;
avg = sum / 3;
Console.WriteLine("我叫{0},这次考试总成绩为{1}分,平均成绩为{2}分",name,sum,avg); } }

关于构造函数,明天在继续总结学习吧。。。加油!

C#中类的运用(Eighth day)的更多相关文章

  1. PHP中类自动加载的方式

    最近在学习composer,发现从接触PHP到现在已经遇到了三种关于PHP中类的自动加载方式,这其中包括PHP自带的类的自动加载方式.PHP的第三方的依赖管理工具composer的加载方式以及PHP的 ...

  2. Typescript 中类的继承

    Typescript中类的定义与继承与后端开发语言java/C#等非常像,实现起来非常方便,而且代码便于阅读. 用Typescript写较大项目时是非常有优势的. /** * BaseClass */ ...

  3. Objective-C 中类属性(修饰)

    Objective-C 中类属性(修饰) (2013-07-13 14:38:35) 转载▼ 标签: it 分类: IOS笔记 nonatomic: 非原子性访问,对属性赋值的时候不加锁,多线程并发访 ...

  4. java中类的创建及初始化过程

    java中类的创建及初始化过程无外乎两种情况,其一为单类的创建及初始化,其二具有继承关系的父子类创建及初始化过程.     首先说简单的,单类的创建及初始化过程.在java中我们都知道绝大部分对象的创 ...

  5. Python中类的特殊方法详解

    本文和大家分享的主要是python语言中类的特殊方法相关用法,希望对大家有帮助. 构造序列 1._len_(self) 2._getitem_(self,key) 3._setitem_(self,k ...

  6. OC基础--OC中类的定义

    OC中类的定义与使用跟C#和java差别相当明显,做个笔记,牢记并加以区别! 一.OC中类的定义:关键字@implementation 和 @end 注意事项: 1.定义好一个类之后,要让这个类继承N ...

  7. UML中类之间的几种关系

    类之间可能存在以下几种关系:关联(association).依赖(dependency).聚合(Aggregation,也有的称聚集).组合(Composition).泛化(generalizatio ...

  8. Java中类的加载、连接和初始化

    Java中类的加载.连接和初始化 类的加载.连接和初始化 先介绍一下JVM和类 JVM和类: 当我们调用Java命令运行某个Java程序时,该命令将会启动一个Java虚拟机进程,不管该Java程序有多 ...

  9. C++ 中类的构造函数理解(二)

    C++ 中类的构造函数理解(二) 写在前面 上次的笔记中简要的探索了一下C++中类的构造函数的一些特性,这篇笔记将做进一步的探索.主要是复制构造函数的使用. 复制构造函数 复制构造函数也称拷贝构造函数 ...

随机推荐

  1. 通过focusInEvent和eventFilter两种方法改写控件颜色(自定义控件就是这么来的)

    http://www.cnblogs.com/hicjiajia/archive/2012/05/30/2526768.html http://www.cnblogs.com/hicjiajia/ar ...

  2. Activity切换动画(overridePendingTransition)-翻页效果

    Activity的切换动画指的是从一个activity跳转到另外一个activity时的动画.{它包括两个部分:一部分是第一个activity退出时的动画:另外一部分时第二个activity进入时的动 ...

  3. JAVA中正則表達式总结

    昨天,我的朋友请教我正則表達式.我也好久没有写过正則表達式了,昨天刚好看了下如鹏网创始人杨中科老师关于正則表達式的解说.使我加深了正則表達式的印像.现我把他总结下: 很多语言,包含Perl.PHP.P ...

  4. Android首席设计师宣称移动概念已死,开发人员应该面向屏幕编写应用而非移动

    腾讯科技对Android首席设计师Duarte"移动已死"訪谈内容的翻译错得离谱,被到处转载,误人视听. 而要真正理解Duarte所想表达的含义,须要深入了解互联网前沿设计理念以及 ...

  5. zoj 1539 Lot

    /*理解题意后,发现最后剩下的都是个数并不是和奇数偶数等有直接的关系,所以我们直接从数量入手 比如11会被分为5,6.5再分2,3.6再分3,3只要剩下三个就算一种,少于三个不用算.大于3个继续分 很 ...

  6. handlebar.js使用

    官方网站:http://handlebarsjs.com/ 下载及查看使用帮助,或者用百度cdn引用 一.定义模板 <script id="entry-template" t ...

  7. ajax异步服务器获取时间

    1.创建ajax对象 <script type="text/javascript"> //创建AJAX异步对象 function createAJAX(){ var a ...

  8. datatable,查询,排序,复制等操作

    DataTable排序,检索,合并详解 一.排序 获取DataTable的默认视图 对视图设置排序表达式 用排序后的视图导出的新DataTable替换就DataTable (Asc升序可省略,多列排序 ...

  9. appium 学习各种小功能总结--功能有《滑动图片、保存截图、验证元素是否存在、》---新手总结(大牛勿喷,新手互相交流)

    1.首页滑动图片点击 /** * This Method for swipe Left * 大距离滑动 width/6 除数越大向左滑动距离也越大. * width:720 *height:1280 ...

  10. CentOS修改IP

    编辑 /etc/sysconfig/network-scripts/ifcfg-eth0 然后 service network restart DEVICE=eth0BOOTPROTO=noneNM_ ...