属性:

1.一般属性开头字母大写,字段开头字母小写。

2.通过public来赋值的方法无法判断赋值是否非法!

3.无论赋值如何,取值如果就是不采用赋值的结果,那么无论赋值什么都不管用。

4.经典错误之死循环。

5.只读属性。

6..net3.0以上支持简写代码

例一:

通过public来赋值的方法无法判断赋值是否非法!

验证代码如下:

using System;
using System.Collections.Generic;
using System.Text;
namespace stduy2
{
class Program
{
static void Main(string[] args)
{
Person p = new Person(); p.Age = ;//赋值
Console.WriteLine("星云的年龄:Age={0}",p.Age);//取值结果22
p.Age = -;
Console.WriteLine("所以星云修改后的年龄:Age={0}\n", p.Age);//取值结果22
p.Age1 = -;//这种赋值方法,无法判断合法值
Console.WriteLine("通过public来赋值的方法无法判断赋值是否非法!\n所以星云新的年龄为错误值:Age1={0},", p.Age1);//取值结果-100
Console.ReadKey();
}
}
class Person
{
private int age;
public int Age1;
public int Age
{
set //赋值
{
if (value< )
{
Console.WriteLine("\n警告:年龄修改失败,年龄将保持不变,失败原因:年龄不能为负数!");
}
else
this.age = value;
}
get //取值
{
return this.age; }
}
}
}

运行截图:

例二:

无论赋值如何,取值如果就是不采用赋值的结果,那么无论赋值什么都不管用。

代码验证如下:

using System;
using System.Collections.Generic;
using System.Text; namespace stduy2
{
class Program
{
static void Main(string[] args)
{
Person p = new Person(); p.Age = ;//赋值
Console.WriteLine("星云的年龄:Age={0}",p.Age);//取值返回值520
p.Age = -;
Console.WriteLine("所以星云修改后的年龄:Age={0}\n", p.Age);//取值,返回值为520
p.Age = ;
p.Age = p.Age + ;
Console.WriteLine("\n计算后星云年龄为p.Age={0}",p.Age);//取值,所以返回值是520
Console.ReadKey();
}
}
class Person
{
private int age;
public int Age1;
public int Age
{
set //赋值
{
if (value< )
{
Console.WriteLine("\n警告:年龄修改失败,年龄将保持不变,失败原因:年龄不能为负数!");
}
else
this.age = value;
}
get //取值
{
return ;
}
}
}
}

程序运行截图:

例三:经典错误之死循环:

代码如下:

using System;
using System.Collections.Generic;
using System.Text; namespace stduy2
{
class Program
{
static void Main(string[] args)
{
Person p = new Person(); p.Age = ;//赋值
Console.WriteLine("星云的年龄:Age={0}",p.Age);//取值死循环
Console.ReadKey();
}
}
class Person
{
private int age;
public int Age
{
set //赋值
{
this.Age = value;
}
get //取值
{
return this.Age; }
}
}
}

例四:只读属性:

using System;
using System.Collections.Generic;
using System.Text; namespace Person
{
class Program
{
static void Main(string[] args)
{
person p = new person();
p.IncAge();
Console.WriteLine("年龄:{0}", p.Age);
p.IncAge();
Console.WriteLine("年龄:{0}",p.Age);
Console.ReadKey();
}
} class person
{
private int age;
public int Age //只读属性
{
get { return age; } }
public void IncAge()
{
age++;
}
}
}

运行截图:

例五:.net3.0以上支持简写代码:

using System;
using System.Collections.Generic;
using System.Text; namespace Person
{
class Program
{
static void Main(string[] args)
{
person p = new person();
p.Age = ;
Console.WriteLine("星云年龄:{0}", p.Age);
Console.ReadKey();
}
} class person
{ public int Age
{
set;//编译器自动帮我们生成私有字段和set、get代码块。
get; }
public String Name
{
set;
get;
}
}
}

运行截图:

2.C#面向对象基础属性的更多相关文章

  1. python面向对象基础-属性/方法

  2. 了解JavaScript 面向对象基础 & 原型与对象

    面向对象语言中的对象 老是能听到什么基于对象, 面向对象. 什么是对象, 如果有面向对象基础的人可以无视了, 下面举个简单的例子给大家讲讲面向对象中, 对象的定义, 这个是比较通用的, 不过对于JS来 ...

  3. 从零开始学Python第六周:面向对象基础(需修改)

    标签(空格分隔): 面向对象 一,面向对象基础 (1)面向对象概述 面向过程:根据业务逻辑从上到下写代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类 ...

  4. python面向对象基础

    面向对象基础 1. 简述 编程方式: 面向过程: 根据代码在脚本的堆叠顺序,从上到下依次执行 函数式编程:将相同功能的代码封装到函数中,直接调用即可,减少代码重复性 面向对象:对函数进行分类和封装,将 ...

  5. java基础学习05(面向对象基础02)

    面向对象基础02 实现的目标 1.String类的使用2.掌握this关键字的使用3.掌握static关键字的使用4.了解内部类 String类 实例化String对象一个字符串就是一个String类 ...

  6. java基础学习05(面向对象基础01--类实例分析)

    面向对象基础01(类实例分析) 实现的目标 1.如何分析一个类(类的基本分析思路) 分析的思路 1.根据要求写出类所包含的属性2.所有的属性都必须进行封装(private)3.封装之后的属性通过set ...

  7. java基础学习05(面向对象基础01)

    面向对象基础01 1.理解面向对象的概念 2.掌握类与对象的概念3.掌握类的封装性4.掌握类构造方法的使用 实现的目标 1.类与对象的关系.定义.使用 2.对象的创建格式,可以创建多个对象3.对象的内 ...

  8. 8.python笔记之面向对象基础

    title: 8.Python笔记之面向对象基础 date: 2016-02-21 15:10:35 tags: Python categories: Python --- 面向对象思维导图 (来自1 ...

  9. 【重走Android之路】【Java面向对象基础(三)】面向对象思想

    [重走Android之路][基础篇(三)][Java面向对象基础]面向对象思想   1 面向对象的WWH   1.1 What--什么是面向对象         首先,要理解“对象”.在Thinkin ...

随机推荐

  1. 在Ubuntu下搭建ASP.NET 5开发环境

    在Ubuntu下搭建ASP.NET 5开发环境 0x00 写在前面的废话 年底这段时间实在太忙了,各种事情都凑在这个时候,没时间去学习自己感兴趣的东西,所以博客也好就没写了.最近工作上有个小功能要做成 ...

  2. 利用CSS中的:after、: before制作的边三角提示框

    小颖昨天分享了一篇参考bootstrap中的popover.js的css画消息弹框今天给大家再分享一篇使用:before和:after伪元素画消息弹框的CSS. 画出来是介个酱紫的: 有没有觉得画的萌 ...

  3. Web APi之认证(Authentication)两种实现方式【二】(十三)

    前言 上一节我们详细讲解了认证及其基本信息,这一节我们通过两种不同方式来实现认证,并且分析如何合理的利用这两种方式,文中涉及到的基础知识,请参看上一篇文中,就不再叙述废话. 序言 对于所谓的认证说到底 ...

  4. 通过三次优化,我将gif加载优化了16.9%

    WeTest 导读 现在app越来越炫,动不动就搞点动画,复杂的动画用原生实现起来挺复杂,如是就搞起gif播放动画的形式,节省开发成本.   背 景 设计同学准备给一个png序列,开发读取png序列, ...

  5. 对百度WebUploader开源上传控件的二次封装,精简前端代码(两句代码搞定上传)

    前言 首先声明一下,我这个是对WebUploader开源上传控件的二次封装,底层还是WebUploader实现的,只是为了更简洁的使用他而已. 下面先介绍一下WebUploader 简介: WebUp ...

  6. Hadoop学习之旅二:HDFS

    本文基于Hadoop1.X 概述 分布式文件系统主要用来解决如下几个问题: 读写大文件 加速运算 对于某些体积巨大的文件,比如其大小超过了计算机文件系统所能存放的最大限制或者是其大小甚至超过了计算机整 ...

  7. java中易错点(二)

    java,exe是java虚拟机 javadoc.exe用来制作java文档 jdb.exe是java的调试器 javaprof,exe是剖析工具 解析一: sleep是线程类(Thread)的方法, ...

  8. Android——eclipse下运行android项目报错 Conversion to Dalvik format failed with error 1解决

    在eclipse中导入android项目,项目正常没有任何错误,但是运行时候会报错,(clean什么的都没用了.....)如图: 百度大神大多说是jdk的问题,解决: 右键项目-Properties如 ...

  9. 项目游戏开发日记 No.0x000001

    14软二杨近星(2014551622) 既然已经决定了开发软件, 时不时就要练练手, 还要时不时的去寻找素材, 因为开发的人物设定就是DotA2里面的祈求者, 所以, 就去找了他的相关人物图片和模型, ...

  10. 三大框架SSH整合

    三大框架SSH整合 -------------------------------Spring整合Hibernate------------------------------- 一.为什么要整合Hi ...