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 (类的语法)的更多相关文章

  1. python中面向对象_类_对象的概念与定义

    1. 面向对象的概念,面向对象是一种编程思想. 是对现实世界中一类事物的抽象,在编程中可以理解为是一种建立现实世界事物的模型 2.  面向对象和面向过程的区别: 面向过程关注的是完成工作的步骤. 面向 ...

  2. php面向对象:类的继承实例讲解

    什么是类的继承?说白了,我觉得就是提高代码使用效率的.下面我就给大家介绍下继承.大理石平台维修 类的继承概念 子类继承父类的所有成员变量个方法,包括构造方法,当子类被实例化时,php会现在子类中查询构 ...

  3. 13_Python的面向对象编程-类class,对象object,实例instance

    1.面向对象概述 1.类是用来描述对象的工具,把拥有相同属性和行为的对象分为一组     2.对象是由类实例化出来的一个具体的对象         属性: 对象拥有的名词,用变量表示         ...

  4. python -- 面向对象编程(类、对象)

    一.类 类是用来描述具有相同的属性和方法的对象的集合. 它定义了该集合中每个对象共同拥有的属性和方法. 类是一个独立的单位,它有一个类名,其内部包括成员变量和成员方法,分别用于描述对象的属性和行为. ...

  5. OC学习总结之面向对象和类

    OC学习总结之面向对象和类   Objective-c是c语言的母集合,它的原意就是在原始的c语言的主体上加入面向对象的特性.1.面向对象和面向过程  面向对象和面向过程是编程的两种思考方式.面向对象 ...

  6. Java面向对象 Object类 内部类

     Java面向对象 Object类    内部类 知识概要:                 一:Object类                 二:内部类 匿名内部类的写法 1.Object O ...

  7. 【转】Python之面向对象与类

    [转]Python之面向对象与类 本节内容 面向对象的概念 类的封装 类的继承 类的多态 静态方法.类方法 和 属性方法 类的特殊成员方法 继承层级关系中子类的实例对象对属性的查找顺序问题 一.面向对 ...

  8. Java面向对象-Java类的继承及super关键字

    Java面向对象-Java类的继承 1,继承定义以及基本使用 定义:子类能够继承父类的属性和方法: 注意点:Java中只支持单继承: 私有方法不能继承: 上代码: package com.java12 ...

  9. python进阶01 面向对象、类、实例、属性封装、实例方法

    python进阶01 面向对象.类.实例.属性封装.实例方法 一.面向对象 1.什么是对象 #一切皆对象,可以简单地将“对象”理解为“某个东西” #“对象”之所以称之为对象,是因为它具有属于它自己的“ ...

随机推荐

  1. TCP输入 之 tcp_data_queue

    tcp_data_queue作用为数据段的接收处理,其中分为多种情况: (1) 无数据,释放skb,返回: (2) 预期接收的数据段,a. 进行0窗口判断:b. 进程上下文,复制数据到用户空间:c. ...

  2. Backen-Development record 1

    单例模式 在应用这个模式时,单例对象的类必须保证只有一个实例存在. 服务进程中的其他对象再通过这个单例对象获取这些配置信息.这种方式简化了在复杂环境下的配置管理. __new__实现 用装饰器实现单例 ...

  3. LC 357. Count Numbers with Unique Digits

    Given a non-negative integer n, count all numbers with unique digits, x, where 0 ≤ x < 10n. Examp ...

  4. 品牌logo在EDM数据营销中的运用

    作为让客户识别并记住的“门面”, 品牌LOGO的设计与宣导一直都是品牌化输出的重中之重 . 而在邮件营销中,为了让用户在浏览邮件内容前先有品牌概念,营销人员在放置LOGO时常常仅把显眼突出纳入考虑因素 ...

  5. 网络通信框架之okHttp

    主页: https://github.com/square/okhttp 特点: * 支持HTTP/2 和 SPDY * 默认支持 GZIP 降低传输内容的大小 * 支持网络请求的缓存 * 当网络出现 ...

  6. Redis Cluster 官方集群搭建指南

    安装ruby环境因为官方提供的创建集群的工具是用ruby写的,需要ruby2.2.2+版本支持,ruby安装需要指定openssl. 安装openssl $ wget https://www.open ...

  7. Ubuntu16.04中安装VirtualBox及简单配置

    sudo apt-get -y install virtualbox 注:将该图表拖到桌面上即可 往下的过程都不变..... 将左边的菜单栏移动到下面 打开一个终端输入:gsettings set c ...

  8. Selenium 2自动化测试实战26(unittest单元测试框架)

    一.unittest单元测试框架 1.认识单元测试 1.断言方法 #计算器类 #coding:utf-8 #计算器类 class Count: def __init__(self,a,b): self ...

  9. python对列表中名字进行修改,在每个名字后面加入‘the Great’

    第一种方法:使用enumerate函数 def make_great(magicians): for i ,name in enumerate(magicians): magicians[i] = m ...

  10. python 学习笔记(三)根据字典中值的大小对字典中的项排序

    字典的元素是成键值对出现的,直接对字典使用sorted() 排序,它是根据字典的键的ASCII编码顺序进行排序,要想让字典根据值的大小来排序,可以有两种方法来实现: 一.利用zip函数将字典数据转化为 ...