C#第四天
2、类
语法:
[public] class 类名
{
字段;
属性;
方法;
}
写好了一个类之后,我们需要创建这个类的对象,
那么,我们管创建这个类的对象过程称之为类的实例化。使用关键字 new.
this:表示当前这个类的对象。类是不占内存的,而对象是占内存的。
3、属性
属性的作用就是保护字段、对字段的赋值和取值进行限定。
属性的本质就是两个方法,一个叫get()一个叫set()。
既有get()也有set()我们诚之为可读可写属性。
只有get()没有set()我们称之为只读属性
没有get()只有set()我们称之为只写属性
- private string _name;
- public string Name
- {
- //当你输出属性值的时候,会执行get方法
- get { return _name; }
- //当你给属性赋值的时候,首先执行的是set方法
- set { _name = value; }
- }
- //set方法
- public void set_Name(string value)
- {
- this._name = value;
- }
- //get方法
- public string get_Name()
- {
- return this._name;
- }
C#中需要记住的几个单词:Field字段,Method方法,Property属性
4、访问修饰符
public:公开的公共的,在哪都能访问。
private:私有的,只能在当前类的内部进行访问,出了这个类就访问不到了。
protected:可以在当前类的内部以及该类的子类中访问。
internal:在当前项目中都可以访问
protected internal:
能够修饰类的访问修饰符只有两个:public和internal
子类的访问权限不能高于父类
5、
当我们创建好一个类的对象后,需要给这个对象的每个属性去赋值。
我们管这个过程称之为对象的初始化。
6、静态和非静态的区别
1)、 在非静态类中,既可以有实例成员,也可以有静态成员。2)、在调用实例成员的时候,需要使用对象名.实例成员;
在调用静态成员的时候,需要使用类名.静态成员名;
总结:静态成员必须使用类名去调用,而实例成员使用对象名调用。 静态函数中,只能访问静态成员,不允许访问实例成员。
实例函数中,既可以使用静态成员,也可以使用实例成员。静态类中只允许有静态成员,不允许出现实例成员。静态类不能够实例化(不可以创建对象)。
使用:
1)、如果你想要你的类当做一个"工具类"去使用,这个时候可以考虑将类写成静态的。
2)、静态类在整个项目中资源共享。只有在程序全部结束之后,静态类才会释放资源。
7、构造函数
作用:帮助我们初始化对象(给对象的每个属性依次的赋值)
构造函数是一个特殊的方法:
1)、构造函数没有返回值,连void也不能写。2)、构造函数的名称必须跟类名一样。
创建对象的时候会执行构造函数,构造函数是可以有重载的。
***
类当中会有一个默认的无参数的构造函数,当你写一个新的构造函数之后,不管是有参数的还是无参数的,那个默认的无参数的构造函数都被干掉了。
8、new关键字
Person zsPerson=new Person();
A、new帮助我们做了3件事儿:
1)、在内存中开辟一块空间。2)、在开辟的空间中创建对象。3)、调用对象的构造函数进行初始化对象
B、隐藏从父类那里继承过来的成员
9、this关键字
1)、代表当前类的对象。
2)、在类当中显示的调用本类的构造函数 :this
- public class Student
- {
- public Student(string name, int age, char gender, int chinese, int math, int english)
- {
- this.Name = name;
- this.Age = age;
- this.Gender = gender;
- this.Chinese = chinese;
- this.Math = math;
- this.English = english;
- }
- public Student(string name,int chinese,int math,int english):this(name,,'男',chinese,math,english)
- {
- //this.Name = name;
- //this.Chinese = chinese;
- //this.Math = math;
- //this.English = english;
- }
- private string _name;
- public string Name
- {
- get { return _name; }
- set { _name = value; }
- }
- private int _age;
- public int Age
- {
- get { return _age; }
- set
- {
- if (value < || value > )
- {
- value = ;
- }
- _age = value;
- }
- }
- private char _gender;
- public char Gender
- {
- get
- {
- if (_gender != '男' && _gender != '女')
- {
- return _gender = '男';
- }
- return _gender;
- }
- set { _gender = value; }
- }
- private int _chinese;
- public int Chinese
- {
- get { return _chinese; }
- set { _chinese = value; }
- }
- private int _math;
- public int Math
- {
- get { return _math; }
- set { _math = value; }
- }
- private int _english;
- public int English
- {
- get { return _english; }
- set { _english = value; }
- }
- }
10,析构函数
当程序结束的时候,执行析构函数,帮助我们释放资源
~Studengt()
{
Console.WriteLine("我是用来释放资源的");
}
C#第四天的更多相关文章
- 构建一个基本的前端自动化开发环境 —— 基于 Gulp 的前端集成解决方案(四)
通过前面几节的准备工作,对于 npm / node / gulp 应该已经有了基本的认识,本节主要介绍如何构建一个基本的前端自动化开发环境. 下面将逐步构建一个可以自动编译 sass 文件.压缩 ja ...
- 《Django By Example》第四章 中文 翻译 (个人学习,渣翻)
书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:祝大家新年快乐,这次带来<D ...
- 如何一步一步用DDD设计一个电商网站(四)—— 把商品卖给用户
阅读目录 前言 怎么卖 领域服务的使用 回到现实 结语 一.前言 上篇中我们讲述了“把商品卖给用户”中的商品和用户的初步设计.现在把剩余的“卖”这个动作给做了.这里提醒一下,正常情况下,我们的每一步业 ...
- 从0开始搭建SQL Server AlwaysOn 第四篇(配置异地机房节点)
从0开始搭建SQL Server AlwaysOn 第四篇(配置异地机房节点) 第一篇http://www.cnblogs.com/lyhabc/p/4678330.html第二篇http://www ...
- MVVM设计模式和WPF中的实现(四)事件绑定
MVVM设计模式和在WPF中的实现(四) 事件绑定 系列目录: MVVM模式解析和在WPF中的实现(一)MVVM模式简介 MVVM模式解析和在WPF中的实现(二)数据绑定 MVVM模式解析和在WPF中 ...
- “四核”驱动的“三维”导航 -- 淘宝新UI(需求分析篇)
前言 孔子说:"软件是对客观世界的抽象". 首先声明,这里的"三维导航"和地图没一毛钱关系,"四核驱动"和硬件也没关系,而是为了复杂的应用而 ...
- 【翻译】MongoDB指南/CRUD操作(四)
[原文地址]https://docs.mongodb.com/manual/ CRUD操作(四) 1 查询方案(Query Plans) MongoDB 查询优化程序处理查询并且针对给定可利用的索引选 ...
- HTML 事件(四) 模拟事件操作
本篇主要介绍HTML DOM中事件的模拟操作. 其他事件文章 1. HTML 事件(一) 事件的介绍 2. HTML 事件(二) 事件的注册与注销 3. HTML 事件(三) 事件流与事件委托 4. ...
- 【原】AFNetworking源码阅读(四)
[原]AFNetworking源码阅读(四) 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 上一篇还遗留了很多问题,包括AFURLSessionManagerTaskDe ...
- 带你实现开发者头条APP(四)---首页优化(加入design包)
title: 带你实现开发者头条APP(四)---首页优化(加入design包) tags: design,Toolbar,TabLayout,RecyclerView grammar_cjkRuby ...
随机推荐
- PHP的ip2long和long2ip函数的实现原理
最近要做个十进制数字的可逆转换做邀请码,一直没搞清楚怎么弄的,实在太复杂了,今天弄IP时想到这个可以进行转换,于是研究了下原理: 主要是自己整理了下: $ip = '12.34.56.78'; $ip ...
- 使用 voluptuous 校验数据
在 Python 中,我们经常需要对参数进行校验,这是我们有好多种方法,例如写很多 if 啊,或者写正则表达式啊等等,技巧高的人可以写得很巧妙,而技巧一般的人呢,可能会写得很冗长,例如我,经常就不能很 ...
- 技能学习经验与C语言学习调查
技能学习经验与C语言学习调查 前言 要说的话,这还是我第一次写博客.不论是为了作业也好,为了将来的学习工作也好,写博客都是必不可少的,也算是个自我提升的途径吧.不过第一次写博客,就用从来没听说过的ma ...
- 2017中国数据库技术大会(DTCC)又要来啦!期待~~
2017第八届中国数据库技术大会(DTCC2017)将于2017年5月11-13日如约而至.2017中国数据库技术大会(DTCC)以"数据驱动•价值发现"为主题,汇集来自互联网.电 ...
- Python数据预处理—训练集和测试集数据划分
使用sklearn中的函数可以很方便的将数据划分为trainset 和 testset 该函数为sklearn.cross_validation.train_test_split,用法如下: > ...
- 查找页面中最大的z-index 的值
var divs = document.getElementsByTagName("div");for(var i=0, max=0; i<divs.length; i++) ...
- python2与python3
一.print python2 print "hello world !" python3 print("hello world!") 二.字符编码 pyth ...
- myeclipse连接数据库oracle
package xsl; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStat ...
- Hadoop实践
1.将HDFS中的文本文件读取并以JSON格式转存到MongoDB时,报磁盘不足的异常. 实验室的5台计算机的存储空间都在500G以上,就目前存储的数据量来看,完全达不到磁盘接近饱和的状态.通过查看H ...
- Angularjs directive全面解读(1.4.5)
说到Angularjs directive即指令,可以这么说Angularjs的灵魂就是指令,学会Angularjs指令那么你的Angularjs的武功就修炼了一半了,当然这只是鄙人的一点点独到见解, ...