C# 面向对象2 (类的语法)
1.类
语法:
[public] class 类名
{
字段;
属性;
方法;
}
**类名首字母必须大写
2.创建对象
创建这个类的对象过程称之为类的实例化,关键字:new
this:表示当前这个类的对象.
类是不占内存的,而对象是占内存的!(因为创建完对象后,对象的字段就会被初始化,有了初始值)
创建一个Person类:创建了字段(存取数据)和方法(对象的行为)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace 面向对象01
{
public class Person
{
//字段
public string _name;
public int _age;
public char _gender; public void CHLSS()
{
//this关键字:表示当前这个类的对象
Console.WriteLine("我叫{0},我今年{1}岁了,我是{2}生,我可以吃喝拉撒睡~~",this._name,this._age,this._gender);
} }
}
main函数:创建对象,并赋值字段
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace 面向对象01
{
class Program
{
static void Main(string[] args)
{ //创建Person类的对象 new关键字
Person suQuan = new Person();//自定义类 Person,系统的类
suQuan._name = "孙权";
suQuan._age = ;
suQuan._gender='男'; suQuan.CHLSS(); Console.ReadKey();
}
}
}
**结构与类的区别:结构不具备类的特征:封装,继承和多态.
3. 属性
属性的作用就是保护字段,对字段的赋值和取值进行限定.
属性的本质就是两个方法,get和set 方法
既有get()也有set()方法,我们称之为可读可写属性.
只有get()没有set(),我们称之为只读属性.
没有get()只有set(),我们称之为只写属性.
**reflector.exe 微软反编译器的使用
**Fields,Methods,Property
***字段就是女人,属性才是男人. 男人保护女人的!
**set 和get方法的原型
//在反编译器中查看 get set
//set方法的原型
public void set_Name(string value)
{
this._name = value;
}
//get方法的原型
public string get_Name()
{
return this._name;
}
**字段在类中必须是私有的,只能通过属性来访问
set方法在赋值的时候调用,value值的判断
get方法在取值的时候调用,对字段值的判断
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace 面向对象01
{
public class Person
{
//字段,存数据
private string _name; public string Name
{
//当你输出属性值的时候,会执行get方法
get { return _name; }
//当你给属性赋值的时候,首先会执行set方法
set { _name = value; }
} //在反编译器中查看 get set
//set方法的原型
//public void set_Name(string value)
//{
// this._name = value;
//}
//get方法的原型
//public string get_Name()
//{
// return this._name;
//} private int _age; public int Age
{
get { return _age; }
//对Age属性 赋值的时候调用!
set
{
if (value < || value > )
value = ; _age = value;
}
} private char _gender; public char Gender
{
//对Gender属性 取值的时候调用!
get
{
if (_gender != '男' && _gender != '女')
return _gender = '男'; return _gender;
}
set { _gender = value; }
} //方法:对象的行为
public void CHLSS()
{
//this关键字:表示当前这个类的对象
Console.WriteLine("我叫{0},我今年{1}岁了,我是{2}生,我可以吃喝拉撒睡~~",this.Name,this.Age,this.Gender);
} }
}
4.访问修饰符
public:公开的公共的,在哪都能访问
private:私有的,只能在当前类的内部进行访问,除了这个类就访问不到了. 默认private
5.创建对象的正确方法
1.类中的字段是private的,属性是public的
2.创建对象时只能对属性访问和赋值,(由属性做处理,在给字段)
所以之前的第二点的方法是不对,以下才行
main方法:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace 面向对象01
{
class Program
{
static void Main(string[] args)
{ //创建Person类的对象 new关键字
Person suQuan = new Person();//自定义类 Person,系统的类
suQuan.Name = "孙权";
suQuan.Age = -;
suQuan.Gender='春'; suQuan.CHLSS(); Console.ReadKey();
} }
}
Person类:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace 面向对象01
{
public class Person
{
//字段,存数据
private string _name; public string Name
{
//当你输出属性值的时候,会执行get方法
get { return _name; }
//当你给属性赋值的时候,首先会执行set方法
set { _name = value; }
} //在反编译器中查看 get set
//set方法的原型
//public void set_Name(string value)
//{
// this._name = value;
//}
//get方法的原型
//public string get_Name()
//{
// return this._name;
//} private int _age; public int Age
{
get { return _age; }
//对Age属性 赋值的时候调用!
set
{
if (value < || value > )
value = ; _age = value;
}
} private char _gender; public char Gender
{
//对Gender属性 取值的时候调用!
get
{
if (_gender != '男' && _gender != '女')
return _gender = '男'; return _gender;
}
set { _gender = value; }
} //方法:对象的行为
public void CHLSS()
{
//this关键字:表示当前这个类的对象
Console.WriteLine("我叫{0},我今年{1}岁了,我是{2}生,我可以吃喝拉撒睡~~",this.Name,this.Age,this.Gender);
} }
}
6.对象的初始化
当我们创建好一个类的对象后,需要给这个对象的每个属性去赋值.
C# 面向对象2 (类的语法)的更多相关文章
- python中面向对象_类_对象的概念与定义
1. 面向对象的概念,面向对象是一种编程思想. 是对现实世界中一类事物的抽象,在编程中可以理解为是一种建立现实世界事物的模型 2. 面向对象和面向过程的区别: 面向过程关注的是完成工作的步骤. 面向 ...
- php面向对象:类的继承实例讲解
什么是类的继承?说白了,我觉得就是提高代码使用效率的.下面我就给大家介绍下继承.大理石平台维修 类的继承概念 子类继承父类的所有成员变量个方法,包括构造方法,当子类被实例化时,php会现在子类中查询构 ...
- 13_Python的面向对象编程-类class,对象object,实例instance
1.面向对象概述 1.类是用来描述对象的工具,把拥有相同属性和行为的对象分为一组 2.对象是由类实例化出来的一个具体的对象 属性: 对象拥有的名词,用变量表示 ...
- python -- 面向对象编程(类、对象)
一.类 类是用来描述具有相同的属性和方法的对象的集合. 它定义了该集合中每个对象共同拥有的属性和方法. 类是一个独立的单位,它有一个类名,其内部包括成员变量和成员方法,分别用于描述对象的属性和行为. ...
- OC学习总结之面向对象和类
OC学习总结之面向对象和类 Objective-c是c语言的母集合,它的原意就是在原始的c语言的主体上加入面向对象的特性.1.面向对象和面向过程 面向对象和面向过程是编程的两种思考方式.面向对象 ...
- Java面向对象 Object类 内部类
Java面向对象 Object类 内部类 知识概要: 一:Object类 二:内部类 匿名内部类的写法 1.Object O ...
- 【转】Python之面向对象与类
[转]Python之面向对象与类 本节内容 面向对象的概念 类的封装 类的继承 类的多态 静态方法.类方法 和 属性方法 类的特殊成员方法 继承层级关系中子类的实例对象对属性的查找顺序问题 一.面向对 ...
- Java面向对象-Java类的继承及super关键字
Java面向对象-Java类的继承 1,继承定义以及基本使用 定义:子类能够继承父类的属性和方法: 注意点:Java中只支持单继承: 私有方法不能继承: 上代码: package com.java12 ...
- python进阶01 面向对象、类、实例、属性封装、实例方法
python进阶01 面向对象.类.实例.属性封装.实例方法 一.面向对象 1.什么是对象 #一切皆对象,可以简单地将“对象”理解为“某个东西” #“对象”之所以称之为对象,是因为它具有属于它自己的“ ...
随机推荐
- D建立app项目(mui)
参考 http://dev.dcloud.net.cn/mui/getting-started/ 1.ios需要下载iTunes,确保手机能连上电脑 2.mui可参考手册 http://dev.dcl ...
- vue 按需加载,缓存,导航守卫
开发中的注意事项:代码性能的优化 1. 减少对第三方的依赖,降低耦合度 2. 加强组件的重复利用率 3. 按需加载 4. 缓存 (尽量发送请求后保存数据) 5. 开发过程中,尽量有着面向对象的思想,这 ...
- MySQL 插件之 连接控制插件(Connection-Control)
目录 插件介绍 插件安装 插件配置 插件介绍 MySQL 5.7.17 以后提供了Connection-Control插件用来控制客户端在登录操作连续失败一定次数后的响应的延迟.该插件可有效的防止客户 ...
- LC 846. Hand of Straights
Alice has a hand of cards, given as an array of integers. Now she wants to rearrange the cards into ...
- Oracle 性能之 Enq: CF - contention
Oracle 性能之 Enq: CF - contention Table of Contents 1. 原因 2. 解决问题 2.1. 针对持有锁进程类型处理 2.1.1. 查看持有锁会话的进程类型 ...
- Linux之bzip2命令
命令格式: bzip2 [-cdz] 档名 参数: -d :解压缩的参数 -z :压缩的参数 -num 用指定的数字num调整压缩的速度,-1或--fast表示最快压缩方法(低压缩比),-9或--be ...
- 图片加载框架之ImageLoader
Android开发中,多少会接触到异步加载图片,或者加载大量图片的问题,而加载图片我们常常会遇到许多的问题,比如说图片的错乱,OOM等问题,对于这些问题解决起来会比较吃力,比较著名的就是Univers ...
- 学习前端第二天心得体会(初步了解HTML5的部分API以及画布Canvas)
一.HTML5部分API 1.选择器querySelector和querySelectorAll 1.1.querySelector:返回文档中匹配指定的CSS选择器的第一元素. document. ...
- Python标准组件ConfigParser配置文件解析器,保存配置时支持大写字母的方法
虽然自己已经改用xml作为配置文件首选格式了,但是有时候还是需要解析ini.cfg文件(为了兼容早期版本或者其他作者的软件). 基本上Python自带的ConfigParser足够应对了,但是美中不足 ...
- 八十四:redis之redis的集合、哈希操作
set集合操作 添加元素:sadd set value1 value2... 查看元素:smembers set 移除元素:srem set member 查看集合中的元素个数:scard set 获 ...