面向对象的复习_封装

封装
字段:存储数据,访问修饰符应该设置为private私有的

string _name;

属性:保护字段,对字段的取值和赋值进行限定

public string Name
{
    get { return _name; }
    set { _name = value; }
}

构造函数:初始化对象,当创建对象的时候会调用构造函数

public Person(string name)
{
    this.Name = name;
}

new关键字:

Person p = new Person();

1.在堆中开辟空间

2.在开辟的空间中创建对象

3.调用对象的构造函数

this关键字:

1.代表当前类的对象

2.调用自己的构造函数

 1     class Person
 2     {
 3         //字段 属性 构造函数 方法 接口
 4         string _name;//字段
 5         public string Name//属性
 6         {
 7             get { return _name; }
 8             set//限定_name的值
 9             {
10                 if (value != "张三")
11                 {
12                     value = "张三";
13                 }
14                 _name = value;
15             }
16         }
17         int _age;
18         public int Age
19         {
20             get//限定_age的取值范围
21             {
22                 if (_age < 0 || _age > 100)
23                 {
24                     return _age = 0;
25                 }
26                 return _age;
27             }
28             set { _age = value; }
29         }
30         char _gender;
31         public char Gender
32         {
33             get { return _gender; }
34             set { _gender = value; }
35         }
36         int _chinese;
37         public int Chinese
38         {
39             get { return _chinese; }
40             set { _chinese = value; }
41         }
42         int _math;
43         public int Math
44         {
45             get { return _math; }
46             set { _math = value; }
47         }
48         int _english;
49         public int English
50         {
51             get { return _english; }
52             set { _english = value; }
53         }
54         //构造函数
55         public Person(string name, int age, char gender, int chinese, int math, int english)
56         {
57             this.Name = name;
58             this.Age = age;
59             if (gender != ‘男‘ && gender != ‘女‘)//对字段的取值进行限定
60             {
61                 gender = ‘男‘;
62             }
63             this.Gender = gender;
64             this.Chinese = chinese;
65             this.Math = math;
66             this.English = english;
67         }
68
69         //通过this调用自身的构造函数
70         public Person(string name, int age, char gender)
71             : this(name, age, gender, 0, 0, 0)
72         {
73             this.Name = name;
74             this.Age = age;
75             this.Gender = gender;
76         }
77
78
79         public void SayHello()
80         {
81             Console.WriteLine("{0}------{1}-----{2}", this.Name, this.Age, this.Gender);
82         }
83     }

				
时间: 2024-12-09 10:14:42

面向对象的复习_封装的相关文章

面向对象的复习_继承

继承 解决代码的冗余,实现多态,增加了代码的扩展性,便于维护 继承的特性: 1.单根性:一个子类只能有一个父类 2.传递性:孙子继承爷爷 3.子类能继承父类的方法和属性,不能继承私有字段 4.子类调用父类的构造函数用使用关键字base 5.父类只能调用自己的成员,不能和使用子类的成员 6.子类之间也不能互相使用对方的成员 public class Person { public string Name//自动属性 { get; set; } public int Age { get; set;

黑马程序猿——JAVA面向对象的特性:封装,继承,多态

                                       - ----------android培训.java培训.java学习型技术博客.期待与您交流!------------  一.java面向对象的特性.封装.继承.多态         封装 封装是对象和类概念的主要特性. 封装.也就是把客观事物封装成抽象的类.而且类能够把自己的数据和方法仅仅让可信的类或者对象操作,对不可信的进行信息隐藏. 继承 面向对象编程 (OOP) 语言的一个主要功能就是"继承".继承

面向对象系列二(封装)

只需要最简单的操作就能实现一系列复杂的功能,是做一个个技术攻克的目的.一台精密仪器,一架家用电器,一个小米手机,这些可能我们都在用,或者用过.它们的内部都无比的复杂,使用了各种各样的配件,运用了极多的原理和知识.我们在使用的时候都具有相同的感受:简单.方便.太好了!面对原本复杂的东西,我们却能通过简单介绍就能运用自如,甚至有的能无师自通,这都为什么?这就用到了面向对象的封装性. 面向对象的封装性就是将复杂的处理封装在"盒子"的内部,只凭借装外壳的少量的按钮或键盘就能轻松实现功能.哦,原

03-04面向对象设计原则_设计实验

设计实验 有 3 个开关:a b c 有 3 个电灯:x y z 要求实现: a 能控制 x b 能控制 x, y c 能 x 注意:1个灯泡可以被多个开关控制:1个开关可以同时控制多个灯泡 所谓"控制":当开关操作时,当前灯泡的状态发生翻转.亮->灭 或 灭->亮 import java.util.*; class Light { private boolean state; // 灯的状态.true: 亮 public String toString() { if(st

黑马程序员——JAVA面向对象的特性:封装,继承,多态

                                       - ----------android培训.java培训.java学习型技术博客.期待与您交流!------------  一.java面向对象的特性,封装.继承.多态         封装 封装是对象和类概念的主要特性. 封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏. 继承 面向对象编程 (OOP) 语言的一个主要功能就是"继承".继承是

如何用面向对象的思维去封装一个小型轮播图插件

1.面向对象与面向过程 既然说到面向对象的思维,那就免不了要对面向过程的编程思维与面向对象的思维做一番比较. 笔者有 一段时间天真的认为有一个类,然后new一个对象就是面向对象编程了,现在想想还是太naive了呀. 其实面向对象的编程思维和面向过程的编程思维重要的不是对象和过程,而是思维. 比如说在生活中我们要做一道西红柿炒鸡蛋,很多人的第一反应就是西红柿炒鸡蛋第一步.第二步.第三步应该怎么做,每一步放什么调料.然后在做的过程中找每一步需要的调料.这就是很典型的面向过程的思维方式:怎么做,需要什

面向对象的三大特性---封装继承多态

面向对象的三大特性---封装继承多态 首先我们来创建一个控制台程序 新建一个父类Person 创建一个子类继承父类Person 子类: main函数: 输出结果: 根据结果显示创建子对象,首先调用父类的构造函数在调用子类的构造函数. 继承的传递性 例如: A:B,B:C,则A:C ⅰ.继承过来之后被隐藏,有意隐藏加一个关键字"new",如果加了关键字"new",就告诉子类,父类里面的sayHi只能被隐藏,不能被覆写  ⅱ.继承过来之后被覆写/重写,覆写需要在父类里面

Python全栈开发记录_第九篇(类的基础_封装_继承_多态)

有点时间没更新博客了,今天就开始学习类了,今天主要是类的基础篇,我们知道面向对象的三大特性,那就是封装,继承和多态.内容参考该博客https://www.cnblogs.com/wupeiqi/p/4493506.html 之前我们写的都是函数,可以说是面向过程的编程,需要啥功能就直接写啥,但是我们在编写程序的过程中会发现如果多个函数有共同的参数或数据时,我们也必须多次重复去写,此时如果用面向对象的编程方式就会好很多,这也是面向对象的适用场景. 面向对象三大特性: 一.封装(顾名思义就是将内容封

Java面向对象编程三大特征 - 封装

Java面向对象编程三大特征 - 封装 本文关键字:Java.面向对象.三大特征.封装封装是面向对象编程中的三大特征之一,在对封装性进行解释时我们有必要先了解一些面向对象的思想,以及相关的概念.当我们想要去描述一系列的关系时我们要用到的最基本结构就是类,其中存在着成员变量和方法,用于记录属性和表达行为,相关知识请进传送门:Java中的基本操作单元 - 类和对象. 一.名词解读 为了解释封装的概念和作用,需要先来了解一下几个相关的概念,这有助于我们接下来的理解. 1. 权限修饰符 当我们在一个类中