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. PHP ob_get_level嵌套输出缓冲

    PHP的输出缓存是可以嵌套的.用ob_get_level()就可以输出嵌套级别. 测试发现在cli和浏览器下输出结果不一样(PHP5.4). ob_level1.png手册说明如下: ob_get_l ...

  2. iOS真机调试之免费预配(Free provisioning)

    免费预配允许开发者在不加入Applec Developer Program的情况下,可以发布和测试App 注意:免费预配(Free Provisioning)与自动预配(Auto Provisioni ...

  3. 黑马vue---14、v-model双向绑定

    黑马vue---14.v-model双向绑定 一.总结 一句话总结: 1.v-bind 只能实现数据的单向绑定,从 M 自动绑定到 V, 无法实现数据的双向绑定 2.v-model 指令,可以实现 表 ...

  4. 简单的多屏播放器示例(vlc+qt)

      介绍 简单的多屏播放器 最多同时播放16个视频 支持本地文件和rtsp.rtmp等流媒体播放 VS2015工程,依赖Qt+VLC 练手作品 截图 下载 程序:download.csdn.net/d ...

  5. LC 774. Minimize Max Distance to Gas Station 【lock,hard】

    On a horizontal number line, we have gas stations at positions stations[0], stations[1], ..., statio ...

  6. 深入学习重点分析java基础---第一章:深入理解jvm(java虚拟机) 第一节 java内存模型及gc策略

    身为一个java程序员如果只会使用而不知原理称其为初级java程序员,知晓原理而升中级.融会贯通则为高级 作为有一个有技术追求的人,应当利用业余时间及零碎时间了解原理 近期在看深入理解java虚拟机 ...

  7. 使用Navicat Premium 客户端绕过白名单限制mysql数据库

    针对有些数据库有白名单限制,但如果IP经常浮动的话,会要经常加白名单,但如果知道可以连接数据库的linux用户密码就能 通过SSH通道代理来连接数据库.保存密码后,这样就能直接连接数据库,减省很多麻烦 ...

  8. maven 打jar包和war包

     (       最简单的:修改pom.xml文件:                        <packaging>war</packaging>(如果是jar,则是&l ...

  9. JPA 或者Hibernate 实体类说明

    这里简单介绍Hibernate的Annotation注解 一.声明实体 @Entity对实体注释.任何Hibernate映射对象都要有这个注释@Table声明此对象映射到数据库的数据表,通过它可以为实 ...

  10. spring boot系列(二)spring boot web开发

    json 接口开发 在以前的spring 开发的时候需要我们提供json接口的时候需要做如下配置: 1 添加jackjson等jar包 2 配置spring controller扫描 3 对接的方法添 ...