2.C#面向对象基础属性
属性:
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#面向对象基础属性的更多相关文章
- python面向对象基础-属性/方法
- 了解JavaScript 面向对象基础 & 原型与对象
面向对象语言中的对象 老是能听到什么基于对象, 面向对象. 什么是对象, 如果有面向对象基础的人可以无视了, 下面举个简单的例子给大家讲讲面向对象中, 对象的定义, 这个是比较通用的, 不过对于JS来 ...
- 从零开始学Python第六周:面向对象基础(需修改)
标签(空格分隔): 面向对象 一,面向对象基础 (1)面向对象概述 面向过程:根据业务逻辑从上到下写代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类 ...
- python面向对象基础
面向对象基础 1. 简述 编程方式: 面向过程: 根据代码在脚本的堆叠顺序,从上到下依次执行 函数式编程:将相同功能的代码封装到函数中,直接调用即可,减少代码重复性 面向对象:对函数进行分类和封装,将 ...
- java基础学习05(面向对象基础02)
面向对象基础02 实现的目标 1.String类的使用2.掌握this关键字的使用3.掌握static关键字的使用4.了解内部类 String类 实例化String对象一个字符串就是一个String类 ...
- java基础学习05(面向对象基础01--类实例分析)
面向对象基础01(类实例分析) 实现的目标 1.如何分析一个类(类的基本分析思路) 分析的思路 1.根据要求写出类所包含的属性2.所有的属性都必须进行封装(private)3.封装之后的属性通过set ...
- java基础学习05(面向对象基础01)
面向对象基础01 1.理解面向对象的概念 2.掌握类与对象的概念3.掌握类的封装性4.掌握类构造方法的使用 实现的目标 1.类与对象的关系.定义.使用 2.对象的创建格式,可以创建多个对象3.对象的内 ...
- 8.python笔记之面向对象基础
title: 8.Python笔记之面向对象基础 date: 2016-02-21 15:10:35 tags: Python categories: Python --- 面向对象思维导图 (来自1 ...
- 【重走Android之路】【Java面向对象基础(三)】面向对象思想
[重走Android之路][基础篇(三)][Java面向对象基础]面向对象思想 1 面向对象的WWH 1.1 What--什么是面向对象 首先,要理解“对象”.在Thinkin ...
随机推荐
- 跟我一起云计算(5)——Shards
什么是sharding Sharding的基本思想就要把一个数据库切分成多个部分放到不同的数据库 (server)上,从而缓解单一数据库的性能问题.不太严格的讲,对于海量数据的数据库,如果是因为表多而 ...
- ExtJS 4.2 Grid组件的单元格合并
ExtJS 4.2 Grid组件本身并没有提供单元格合并功能,需要自己实现这个功能. 目录 1. 原理 2. 多列合并 3. 代码与在线演示 1. 原理 1.1 HTML代码分析 首先创建一个Grid ...
- 红黑树——算法导论(15)
1. 什么是红黑树 (1) 简介 上一篇我们介绍了基本动态集合操作时间复杂度均为O(h)的二叉搜索树.但遗憾的是,只有当二叉搜索树高度较低时,这些集合操作才会较快:即当树的高度较高(甚至一种极 ...
- 利用on和off方法编写高效的js代码
先说下将这个话题的起因:最近发现公司的功能代码,很多在dom对象删除以后,其声明的绑定在window上的resize事件还一直存在,导致相同的功能代码执行了几次.对于我这种轻微代码洁癖的人来说,简直是 ...
- Android探索之AIDL实现进程间通信
前言: 前面总结了程序间共享数据,可以使用ContentProvider也可以使用SharedPreference,那么进程间怎么共享内存呢?Android系统中的进程之间不能共享内存,因此,需要提供 ...
- iOS审核这些坑,腾讯游戏也踩过
作者:Jamie,专项技术测试工程师,在iOS预审和ASO优化领域从事专项测试相关工作,为腾讯游戏近100个产品提供专项服务. WeTest 导读 在App上架苹果应用商店的过程中,相信大多数iOS开 ...
- JavaScript 常量定义
相信同学们在看见这个标题的时候就一脸懵逼了,什么?JS能常量定义?别逗我好吗?确切的说,JS当中确实没有常量(ES6中好像有了常量定义的关键字),但是深入一下我们可以发现JS很多不为人知的性质,好好利 ...
- PHP中PDO事务的使用方法
事务 (Transaction) 是操作数据库中很重要的一个功能, 它可以让你预定一条, 或者一系列 SQL 语句, 然后一起执行. 在执行的过程中, 如果其中的某条执行失败, 可以回滚所有已更改的操 ...
- stringstream的基本用法
原帖地址:https://zhidao.baidu.com/question/580048330.htmlstringstream是字符串流.它将流与存储在内存中的string对象绑定起来.在多种数据 ...
- PHP设计模式(四)单例模式(Singleton For PHP)
今天讲单例设计模式,这种设计模式和工厂模式一样,用的非常非常多,同时单例模式比较容易的一种设计模式. 一.什么是单例设计模式 单例模式,也叫单子模式,是一种常用的软件设计模式.在应用这个模式时,单例对 ...