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. Mysql 修改密码和设置远程连接

    [参考文章]:mysql修改root密码和设置权限 1. 修改密码 1.1 set password 登录mysql set password for 用户名@localhost = password ...

  2. GUI输入数据并保存

    from tkinter import * def write_to_file(): fileContent = open("deliveries.txt","a&quo ...

  3. python 购物车+用户认证程序

    创建文件a.txt,b.txt.c.txt用于存放应该持续保存的信息 a.txt :用户密码输入错误3次就锁定 b.txt :购物时的活动,每个用户只能参与一次 c:txt :购物完后的发票在这里查看 ...

  4. linux常用20条命令

    1.cd命令 这是一个非常基本,也是大家经常需要使用的命令,它用于切换当前目录,它的参数是要切换到的目录的路径,可以是绝对路径,也可以是相对路径.如: cd /root/Docements # 切换到 ...

  5. [Java]用于将链表变成字符串并在元素之间插入分隔符的有用函数“String.join”

    将链表变成字符串并在元素之间插入分隔符,这种动作最常见于组合sql文“select a,b,c from tb”这种场景scenario,其中a,b,c你是存贮在链表中的, 如果要加逗号要么在循环中识 ...

  6. Struts ognl表达式语言几个符号

    #  获取非根元素值  . 动态都建map集合 $  配置文件取值 %  提供一个ognl表达式运行环境 <%@ page language="java" import=&q ...

  7. 虚拟化技术原理(CPU、内存、IO)

    本文来自:http://www.ywnds.com/?p=5856 虚拟化 云计算现在已经非常成熟了,而虚拟化是构建云计算基础架构不可或缺的关键技术之一. 云计算的云端系统, 其实质上就是一个大型的分 ...

  8. java之数据填充PDF模板

    声明:由于业务场景需要,所以根据一个网友的完成的. 1.既然要使用PDF模板填充,那么就需要制作PDF模板,可以使用Adobe Acrobat DC,下载地址:https://carrot.ctfil ...

  9. 《Javascript 语言精粹》 中 用到的一些代码 (1)

    var isNumber = function isNumber(value){ return typeof value === 'number' && isFinite(value) ...

  10. EMA指数平滑移动平均

    英文参考:http://www.incrediblecharts.com/indicators/exponential_moving_average.php Exponential moving av ...