C#类中的成员
@
字段
字段的声明与声明变量类似,可以添加访问修饰符,通常情况下字段设置为私有的,然后定义属性对字段的读写进行限制
一般的命名规范约定,私有字段使用下划线前缀、小驼峰命名
private int _age //定义一个私有字段_age
属性
属性拥有两个访问器(get和set),用于控制读取和写入,通常和字段配套使用,用来对字段进行读写限制
//定义一个Age属性,限制赋值给_age字段的值为18到60岁之间
//get和set类似于不能接受参数的方法,value是赋给Age属性的值
public int Age
{
get { return _age; }
set {
if(value >= 18 && value<=60)
_age = value;
}
}
方法
正式的C#术语中区分函数和方法,但是在初期,我们也可以把方法当成函数来理解
//定义一个SayAge方法,传递一个int类型的变量给SayAge方法,输出“我的年龄是~”
public void SayAge(int age)
{
Console.WriteLine($"我的年龄是{age}")
}
构造函数
构造函数是在创建对象的时候调用的方法,主要作用是初始化字段(为字段赋值),构造函数支持重载,即根据不同的参数签名(参数列表和参数类型共同组成),调用不同的构造函数
//定义Pen类,并创建构造方法
class Pen
{
private int _price;
//无参构造方法,将_price字段初始化为0
public Pen()
{
this._price = 0;
}
//接收一个int类型的构造方法,将_price字段初始化为传递进来的price变量
public Pen(int price)
{
this._age = price;
}
}
//注意事项:在如果没有定义构造函数,编译器会自动添加一个无参构造函数
//注意事项:如果自行定义了构造函数,无论带几个参数,编译器就不会再自动添加无参构造函数,如有需要,需要手动声明
//注意事项:如果构造函数没有为字段赋值,编译器会将值类型初始化为0,引用类型初始化为NULL
类和对象的简单解释
类是类别,是一个虚指;对象是具体的,是一个实指。如钢笔是一个类,我的价值15块的钢笔就是一个对象。
创建类和对象
//借用上方的Pen类,创建一个对象
Pen myPen = new Pen(15);
//此条语句创建了一个myPen对象,并调用Pen(int price)构造函数将myPen对象的_price字段赋值为15
类中成员的归属问题
类中的成员有静态和非静态的区别,非静态成员每个对象都有一份,静态成员类有一份
Pen myPen = new Pen(15);
Pen hePen = new Pen(150);
//上方Pen类中price字段定义为非静态成员
//在定义myPen和hePen两个对象中,每个对象都有自己的_price字段
静态成员属于类,对象是没有的,且一个类的每个静态成员只有一份
//静态成员使用static修饰
//在Pen中定义一个Write静态方法,这个方法属于类,使用类名.方法名调用,例如这里需要调用此静态方法的语句是Pen.Write()
class Pen
{
public static void Write()
{
Console.WriteLine("笔可以写字");
}
}
//注意事项:类的静态成员与对象无关,即实例化的Pen的对象myPen,是没有Write()方法的
//注意事项:每个类的每个静态成员只有一份,即Pen.Wirte()指向的方法和使用Pen实例化若干个对象后调用的Pen.Write()是同一个
类也可以定义为静态,静态类不能再实例化对象,定义静态类的主要作用是提供一些常用方法
如C#中的Console.WriteLine()
就是一个静态类中的静态方法
C#类中的成员的更多相关文章
- YTU 2618: B 求类中数据成员的最大值-类模板
2618: B 求类中数据成员的最大值-类模板 时间限制: 1 Sec 内存限制: 128 MB 提交: 430 解决: 300 题目描述 声明一个类模板,类模板中有三个相同类型的数据成员,有一函 ...
- C++(十六) — 类中引用成员函数、命名空间的使用
1.为什么类中引用成员函数? 类将属性和方法做了封装.类是一种数据类型,也就是:固定大小内存块的别名. 类的定义是一个抽象的概念,定义时不分配内存,当用类定义对象时,才分配一个固定大小的内存块. 此时 ...
- YTU 2639: 改错题:类中私有成员的访问
2639: 改错题:类中私有成员的访问 时间限制: 1 Sec 内存限制: 128 MB 提交: 431 解决: 297 题目描述 /* 改错题: 设计一个日期类和时间类,并编写全局函数displ ...
- c++中可以对类中私有成员中的静态变量初始化吗?
转载http://www.cnblogs.com/carbs/archive/2012/04/04/2431992.html 问题:我看的书上写的对私有部分的访问可以是公共部分的成员函数,也可以是友员 ...
- 第十六周oj刷题——Problem I: 改错题:类中私有成员的訪问
Description 改错题: 设计一个日期类和时间类,并编写全局函数display用于显示日期和时间. 要求:display函数作为类外的普通函数,而不是成员函数 在主函数中调用display函数 ...
- js里面如何才能让成员方法去调用类中其他成员
function fun(){ var _this = this; //如果函数是用var定义的私有函数,如下 var func1 = function(){ } //那么类中其他函数都可以直接通过f ...
- 【Java.Regex】使用正则表达式查找一个Java类中的成员函数
代码: import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; imp ...
- 关于C++类中的成员
突然发现,如果C++的类成员中存在共有的成员,则可以通过指针的偏移来访问私有的成员变量,当然前提是对内存对齐比较清楚.只要骗过了编译器就可以为所欲为了. #include <cstdio> ...
- C++类中引用成员和常量成员的初始化(初始化列表)
如果一个类是这样定义的: Class A { public: A(int pram1, int pram2, int pram3); privite: int a; int &b; const ...
随机推荐
- [POJ 2585] Window Pains 拓朴排序
题意:你现在有9个2*2的窗口在4*4的屏幕上面,由于这9这小窗口叠放顺序不固定,所以在4*4屏幕上有些窗口只会露出来一部分. 如果电脑坏了的话,那么那个屏幕上的各小窗口叠放会出现错误.你的任务就是判 ...
- Educational Codeforces Round 89 (Rated for Div. 2) B. Shuffle (数学,区间)
题意:有长为\(n\)的排列,其中\(x\)位置上的数为\(1\),其余位置全为\(0\),询问\(m\)次,每次询问一个区间,在这个区间内可以交换任意两个位置上的数,问\(1\)最后出现在不同位置的 ...
- httprunner(8)用例调用-RunTestCase
前言 一般我们写接口自动化的时候,遇到复杂的逻辑,都会调用API方法来满足前置条件,Pytest的特性是无法用例之间相互调动的,我们一般只调用自己封装的API方法. 而httprunner支持用例之间 ...
- axios增加自定义headers,页面上出现,服务端收不到
问题 axios增加自定义headers,页面上出现,服务端收不到 原因 vue-cli起的服务是用node-http-proxy中间件处理的 默认是只有几个常用的header,自定义header是直 ...
- hdu4801 PocketCube 2阶魔方
http://acm.hdu.edu.cn/showproblem.php?pid=4801 1. 题目描述给定一个2×2×22×2×2的魔方,当某个面上的4个小块颜色均相同时,称这个面为comple ...
- sqli-libs(4) 双引号报错
经测试,发现单引号不报错,而双引号却报错了 通过查看源码,发现下图中红色的箭头,如果不知道是什么意思,我们可以复制出来看看是什么含义: <?php$id=1;$id='"' .$id. ...
- 高并发之Semaphore、Exchanger、LockSupport
本系列研究总结高并发下的几种同步锁的使用以及之间的区别,分别是:ReentrantLock.CountDownLatch.CyclicBarrier.Phaser.ReadWriteLock.Stam ...
- Subresource Integrity,SRI,Cross-Origin Resource Sharing (CORS),子资源的完整性检查,Subresource Integrity checking,CORS,Ajax
SRI https://code.jquery.com/ SRI是一种新的W3C规范,它允许Web开发人员,以确保托管在第三方服务器上的资源是没有被篡改的.SRI的使用,建议作为最佳实践,每当库从第三 ...
- Roman Numerals All In One
Roman Numerals All In One 罗马数字 refs https://www.mathsisfun.com/roman-numerals.html https://www.maths ...
- Flutter for Desktop
Flutter for Desktop https://flutter.dev/desktop https://github.com/flutter/flutter/wiki/Desktop-shel ...