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.线程是一堆指令,是操作系统调度 ...
随机推荐
- MQTT 协议学习: 总结 与 各种定义的速查表
背景 经过几天的学习与实操,对于MQTT(主要针对 v3.1.1版本)的学习告一段落,为了方便日后的查阅 本文链接:<MQTT 协议学习: 总结 与 各种定义的速查表> 章节整理 MQTT ...
- 分享一款免费的工控组态软件(PCHMI)
PCHMI严格的讲它并不是一款组态软件,也不是一款SCADA软件,而是一个基于.NET构架的DLL文件,开发者可以使用微软的Visual Studio将PCHMI.DLL加载到工具箱里面进行二次开发. ...
- java 垒骰子
垒骰子 赌圣atm晚年迷恋上了垒骰子,就是把骰子一个垒在另一个上边,不能歪歪扭扭,要垒成方柱体. 经过长期观察,atm 发现了稳定骰子的奥秘:有些数字的面贴着会互相排斥! 我们先来规范一下骰子:1 的 ...
- 第1节 HUE:13、hue的下载以及安装配置
hue的基本介绍:主要是用于与其他各个框架做整合的,提供一个web界面可以供我们去操作其他的大数据框架可以理解为这个hue就是一个与其他各个框架整合的工具,hue本身不提供任何的功能,所有的功能,都是 ...
- iOS大V博客
王巍的博客:王巍目前在日本横滨任职于LINE.工作内容主要进行Unity3D开发,8小时之外经常进行iOS/Mac开发.他的陈列柜中已有多款应用,其中番茄工作法工具非常棒. http://onevca ...
- 032、Java中判断某一个数字是奇数还是偶数
01.代码如下: package TIANPAN; /** * 此处为文档注释 * * @author 田攀 微信382477247 */ public class TestDemo { public ...
- excel表格数据导入导出
/** * 导出数据到excel表格 * Created by shenjianhua on 2018-12-28 */ package com.luer.comm.excel; import jav ...
- Yarn的资源调优
一.概述 每个job提交到yarn上执行时,都会分配Container容器去运行,而这个容器需要资源才能运行,这个资源就是Cpu和内存. 1.CPU资源调度 目前的CPU被Yarn划分为虚拟CPU,这 ...
- 吴裕雄 Bootstrap 前端框架开发——Bootstrap 辅助类:响应式实用工具
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- 在windows7 64位上安装selenium2library问题解决
今天发现了windows7 64位上安装selenium2Libaray的问题,下载exe文件安装不行.就切换成了半自动模式. 方案如下: 1.首先下载pip安装.(因为要用pip来安装 selen ...