C#类、对象、方法和属性详解
C#类、对象、方法和属性详解
一、相关概念:
1、对象:现实世界中的实体(世间万物皆对象)
2、类:具有相似属性和方法的对象的集合
3、面向对象程序设计的特点:封装 继承 多态
4、对象的三要素:属性(对象是什么)、方法(对象能做什么)、事件(对象如何响应)
☆相互关系:类是对象的抽象,对象是类的实例,类是一种抽象的分类,对象则是具体事物。
比如如果车是一个类,某个人的一辆奔驰车就是一个对象,车的颜色质量就是它的属性,启动、停止这些动作则可以定义为车的方法。
二、类的定义与语法
1、定义类:
[修饰符] class 类名
{
类成员
}
2、类的访问修饰符:public internal
a) public:可访问域是所在的程序和任何引用的程序 访问不受限制
语法:
public class 类名
{
类成员
}
b) internal:可访问域定义范围内 (默认访问修饰符)
语法:
(internal) class 类名
{
类成员
}
3、类成员:数据成员和字段
a) 数据成员:字段和常量
字段:变量
声明:类型 字段名
例:
public class Persion
{
public string name;
}
b) 方法成员 (方法是类的行为,告诉我们类能够做什么,)
实例方法:
修饰符 返回值类型 方法名(参数列表)
{
方法体
}
修饰符:如:public、private、protected、internal
返回值类型:若方法无返回值,则使用 void
例:
public class Example01 //实例方法
{
public void SayHello() //定义一个无参无返回的方法
{
Console.WriteLine("Hello There")
}
static void Main()
{
Example01 objA=new Example01()
objA.SayHello() //创建对象并调用方法
}
}
静态方法:
修饰符 static返回值类型 方法名(参数列表) //增加了static关键字
{
方法体
}
例:
public class Example01 //实例方法
{
public static void SayHello() //定义一个静态方法
{
Console.WriteLine("Hello There")
}
static void Main()
{
Example01.SayHello() //不需要创建对象
}
}
☆静态方法与实例方法的区别:静态方法只与类有关,它不依赖于对象的存在而存在;实例方法则在对象存在后才能使用。
4、成员的访问修饰符:public、private、protected、internal
a) public:公有成员
b) private:私有成员
c) protected:保护成员
d) internal:内部成员
|
例: |
|
|
代码如下 |
复制代码 |
|
using System; namespace ConsoleApplication2 |
|
三、实例化对象:关键字:new
语法:
类 对象名称=new 类();
|
例: |
|
|
代码如下 |
复制代码 |
|
using System; |
|
四、属性
1、
a) 概念:用于访问类的字段的成员
b) 属性用途:保证数据安全,作数据的验证
2、声明:
访问修饰符 数据类型 属性名
{
get{return 字段;} //读访问器,通过它外部用户可以读取属性的值
set{字段=value;} //写访问器,通过它外部用户可以为属性赋值,用户输入的值就存放在value关键字中,并可以进行输入值验证
}
例:
public class Student
{
private int age; //私有字段,防止用户直接访问
public int Age
{
get{return age;} //用于读取age的值
set
{
if((value>=18)&&(value<=45))
age=value; //为age赋值并验证
else
age=18;
}
}
}
3、特殊属性:
a) 只读属性:
public 数据类型 属性名称
{
get{return 字段;}
}
b) 自动属性:
public 数据类型 属性名称{get;set;}
五、方法的参数
1、值参数:按值传递
2、引用参数:向方法传递实参在内存中的地址,按地址传递
3、输出参数:从方法传递回一个结果
关键字:out
4、数组型参数:参数只允许是一组数组,当方法的参数前带有params关键字时,就是带数组型参数的方法(使用引用传递)
C#类、对象、方法和属性详解的更多相关文章
- JavaScript对象的property属性详解
JavaScript对象的property属性详解:https://www.jb51.net/article/48594.htm JS原型与原型链终极详解_proto_.prototype及const ...
- 第15.10节 PyQt(Python+Qt)入门学习:Qt Designer可视化设计界面组件与QWidget类相关的组件属性详解
PyQt学习有阵子了,对章节的骨架基本考虑好了,准备本节就写组件的属性的,结果一是日常工作繁忙,经常晚上还要加班,二是Qt的组件属性很多,只能逐一学习.研究和整理,花的时间有点长,不过终于将可视化设计 ...
- 【转】HTML embed标签使用方法和属性详解
一.基本语法 代码如下: embed src=url 说明:embed可以用来插入各种多媒体,格式可以是 Midi.Wav.AIFF.AU.MP3等等,Netscape及新版的IE 都支持.url为音 ...
- Vue.js 源码分析(五) 基础篇 方法 methods属性详解
methods中定义了Vue实例的方法,官网是这样介绍的: 例如:: <!DOCTYPE html> <html lang="en"> <head&g ...
- HTML embed标签使用方法和属性详解
一.基本语法 代码如下: embed src=url 说明:embed可以用来插入各种多媒体,格式可以是 Midi.Wav.AIFF.AU.MP3等等,Netscape及新版的IE 都支持 ...
- arguments对象的callee属性详解
在函数内部,有两个特殊的对象:arguments和this. argument对象有一个名叫callee的属性,该属性是一个指针,指向拥有这个arguments对象的函数.请看下面这个非常经典的阶乘函 ...
- 007-Scala类的属性和对象私有字段实战详解
007-Scala类的属性和对象私有字段实战详解 Scala类的使用实战 变量里的类必须赋初值 def函数时如果没参数可不带括号 2.不需要加Public声明 getter与setter实战 gett ...
- Dream------scala--类的属性和对象私有字段实战详解
Scala类的属性和对象私有字段实战详解 一.类的属性 scala类的属性跟java有比较大的不同,需要注意的是对象的私有(private)字段 1.私有字段:字段必须初始化(当然即使不是私有字段也要 ...
- Python进阶----线程基础,开启线程的方式(类和函数),线程VS进程,线程的方法,守护线程,详解互斥锁,递归锁,信号量
Python进阶----线程基础,开启线程的方式(类和函数),线程VS进程,线程的方法,守护线程,详解互斥锁,递归锁,信号量 一丶线程的理论知识 什么是线程: 1.线程是一堆指令,是操作系统调度 ...
随机推荐
- 全面理解Java中的String数据类型
1. 首先String不属于8种基本数据类型,String是一个对象. 因为对象的默认值是null,所以String的默认值也是null:但它又是一种特殊的对象,有其它对象没有的一些特性. 2. ne ...
- GetHub上很实用的几个Demo
手机号匹配的正则表达式:https://github.com/VincentSit/ChinaMobilePhoneNumberRegex/blob/master/README-CN.md FEBS- ...
- zabbix agent的主动工作模式实战案例
zabbix agent的主动工作模式实战案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.zabbix agent的工作模式概述 zabbix agent的主动工作模式: ...
- 剑指offer 按之字型顺序打印二叉树
题目描述 请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推. 使用两个栈进行存储,我们在打印某一行节点 ...
- 042、Java中逻辑运算之短路或运算“||”
01.代码如下: package TIANPAN; /** * 此处为文档注释 * * @author 田攀 微信382477247 */ public class TestDemo { public ...
- POJ - 2456 Aggressive cows(二分+贪心)
题意:把c个牛分进n个摊位,摊位位置已知,所有摊位分布在0 <= xi <= 1,000,000,000,问两头牛间最小距离的最大值. 分析:找所有最小距离取个最大的.所以二分找这个最小的 ...
- Windows 10中使用VirtualBox
新版Windows 10或者安装了新的更新以后,VirtualBox虚拟机就不能用了. 原因是WIndows10里面有个叫Virtualization-base security的安全机制打开了. 关 ...
- 一些linux基础命令
linux基本命令: mkdir -p a/b/c (-p 递归创建目录) tree a (a是文件名) :可以查看某个文件的文件结构(ps:a)创建一个.txt文件 touch 文件名.txt 批量 ...
- php.laravel.log
看代码,原厂代码写的比较清楚,版本(laravel5.7) 简单使用,方便调试,详细使用需要详细查看文档. 在config/app.php 添加 'log' => env('APP_LOG', ...
- js加密(十四)mail.yw.gov.cn/ RSA
1. url: http://mail.yw.gov.cn/ 2. target:登录js 3. 简单分析: 寻找加密js: 3.1 直接寻找加密的参数p是不好找的,所以我们试着去寻找一些更明显的参数 ...