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. 认识HTML语言(CodePen)

    认识HTML语言 1.一个网页的加载过程 2.Web技术全览 3.HTML语法 HTML语法(一):标签 HTML语法(四):网页结构 4.HTML常用元素 展示元素 (1)块级元素div (2)内联 ...

  2. Mac securecrt 破解

      今天花了好长的时间终于在Mac上把SecureCRT安装成功了,网上教程大多没有截图,破解关键步骤含糊,现在把详细的破解过程和SecureCRT使用教程分享给大家.最后把参考的博客连接附在最下方. ...

  3. Anaconda 改为国内镜像的方法

    Anaconda的conda 特别好用 但如果用国外的镜像,慢的出奇 可以改为了国内镜像会好很多 conda config --add channels https://mirrors.tuna.ts ...

  4. 调用远程linux服务器shell脚本

    package com.haiyisoft.hyoaPc.ui; import java.io.BufferedReader;import java.io.IOException;import jav ...

  5. Tensorflow的gRPC编程(一)

    https://blog.csdn.net/langb2014/article/details/69559182 如何用TF Serving部署TensorFlow模型 https://www.jia ...

  6. lucene 快速入门

    日常开发中,相信大家经常会用like去匹配一些数据,同时我们也知道,like往往会导致全表扫描,当数据量越来越大的时候,我们会纠结于 数据库的龟速查找,此时我们必须另寻蹊跷,这时lucene就可以大显 ...

  7. SVN 撤回(回滚)提交的代码

    转: SVN 撤回(回滚)提交的代码 2016年12月20日 17:20:58 怀色 阅读数 68614 标签: svnsvn回滚版本回滚 更多 个人分类: svn   版权声明:本文为博主原创文章, ...

  8. Apache POI读取Excel

    1.pom.xml配置文件 <!-- 配置Apache POI --> <dependency> <groupId>org.apache.poi</group ...

  9. ELK 日志平台构建

    elastic中文社区 https://elasticsearch.cn/ 完整参考 ELK实时日志分析平台环境部署--完整记录 https://www.cnblogs.com/kevingrace/ ...

  10. java:svn

    1.配置: 在windows系统中,操作svn的工具最长用的是小乌龟svn 服务器端(项目所在的服务器上):在java开发中几乎所有的服务器为Linux系统 需要在Linux系统中进行安装 1.修改h ...