head first c#-《Head First C#》 封装学习问题

问题描述

《Head First C#》 封装学习问题

书P191页 给出了一段使用private的代码 但是我照着修改类中的代码后Bug还是存在。 对于封装这个概念不是很了解……

书上P191页上的代码

类中原来的代码

窗体中的代码

窗体界面

解决方案

先学习下怎么提问。首先,要学会发清晰的图片,你没有一个图片上的字能看清楚的。
其次,你应该将代码以文本的形式贴出来。
最后,说清楚什么bug,编译出错,程序结果不正确还是报出什么异常。

解决方案二:

而且据我所知,Head First C#配有源代码,你有没有把源代码下载下来看呢。
一个基本的常识就是,代码要直接复制粘贴,而不是对着纸上的代码抄。包括你提问也是一样,你应该给出可以复制粘贴的代码,而不是一个图片。

解决方案三:

至于你说的封装的概念,和你的程序也没什么关系。封装就是指代码的拥有者才可以访问和修改这个代码中被封装起来的成员。private protected和internal提供了3个级别的封装,这些基本概念先学明白了,再写程序。看你的书上涂涂画画,很多基本的语法都不会。一上来写复杂的自己能搞清楚么。

时间: 2024-12-21 21:01:06

head first c#-《Head First C#》 封装学习问题的相关文章

MySQL数据库学习笔记(十)----JDBC事务处理、封装JDBC工具类

[正文] 首先需要回顾一下上一篇文章中的内容:MySQL数据库学习笔记(九)----JDBC的PreparedStatement接口重构增删改查 一.JDBC事务处理: 我们已经知道,事务的概念即:所有的操作要么同时成功,要么同时失败.在MySQL中提供了Commit.Rollback命令进行事务的提交与回滚.实际上在JDBC中也存在事务处理,如果要想进行事务处理的话,则必须按照以下的步骤完成. JDBC中事务处理的步骤: 1.要取消掉JDBC的自动提交:void setAutoCommit(b

iOS之小功能模块--彩虹动画进度条学习和自主封装改进

前言: 首先展示一下这个iOS小示例的彩色进度条动画效果: 阅读本文先说说好处:对于基础不好的读者,可以直接阅读文末尾的"如何使用彩虹动画进度条"章节,然后将我封装好的这个功能模块类用到你的工程项目中即可. 这个效果的示例是老外Nick Jensen在2013年写的一个作品:使用CAGradientLayer的动画进度条View. 本人阅读了老外的源码之后,觉得老外这个进度条的效果很不错,但是觉得他写的代码有待改进. 小贴士:读者可以直接将老外的源码下载下来,跑一下,然后对比本人写的博

AMF学习2远程调用的封装

前一篇文章中已经学习了AMF数据类型,那么接下来就要将一个完整的AMF文件的封装格式了. AMF文件总体来说分为4部分:前言(Preamble).AMF头.AMF主体和主体的响应. 前言的前2字节用于说明AMF的版本,目前AMF有2个版本AMF0和AMF3.如使用AMF0则是:00 00 第3和第4字节用16位整数表示AMF头的数量. 每一个AMF头是由以下四部分组成: UTF string 表示Header的名字 Boolean 表示该Header是否是必须的 Int32表示Header的长度

Lucene5学习之LuceneUtils工具类简单封装

     周六花了整整一下午,将Lucene5中有关索引的常见操作进行了简单封装,废话不多说,上代码:   Java代码   package com.yida.framework.lucene5.util;      import java.io.IOException;   import java.util.concurrent.ExecutorService;   import java.util.concurrent.locks.Lock;   import java.util.concu

学习JavaScript设计模式(封装)_javascript技巧

在JavaScript 中,并没有对抽象类和接口的支持.JavaScript 本身也是一门弱类型语言.在封装类型方面,JavaScript 没有能力,也没有必要做得更多.对于JavaScript 的设计模式实现来说,不区分类型是一种失色,也可以说是一种解脱. 从设计模式的角度出发,封装在更重要的层面体现为封装变化. 通过封装变化的方式,把系统中稳定不变的部分和容易变化的部分隔离开来,在系统的演变过程中,我们只需要替换那些容易变化的部分,如果这些部分是已经封装好的,替换起来也相对容易.这可以最大程

Javascript学习笔记9 prototype封装继承_基础知识

好,那就让我们一步步打造,首先让我们来看下继承原本的写法: 复制代码 代码如下: <script> var Person = function(name, age) { this.name = name; this.age = age; } Person.prototype.SayHello = function () { alert(this.name + "," + this.age); }; var Programmer = function (name, age,

学习Javascript面向对象编程之封装_javascript技巧

Javascript是一种基于对象(object-based)的语言,你遇到的所有东西几乎都是对象.但是,它又不是一种真正的面向对象编程(OOP)语言,因为它的语法中没有class(类). 那么,如果我们要把"属性"(property)和"方法"(method),封装成一个对象,甚至要从原型对象生成一个实例对象,我们应该怎么做呢?一. 生成对象的原始模式 假定我们把猫看成一个对象,它有"名字"和"颜色"两个属性. var Ca

Javascript设计模式学习(一)封装和信息隐藏

在我们编程的过程中,我们应该尽可能的把数据和函数处理信息隐藏在对象内部,在Javascript中,我们怎样来做呢? 虽然Javascript中没有其他面向对象语言的声明共有和私有的关键字,但是我们仍可以通过一些手段来达到这样的效果.我们可以这样理解封装和信息隐藏,信息隐藏是我们的目标,因为我们不想太多无关的信息暴露在对象之外,而封装就是实现我们目标的方法.封装就可以被定义为在对象内部隐藏数据表达和具体实现的细节. 下面来学习下怎么用Javascript来实现接口:   第一种是:Fully Ex

php学习笔记 php中面向对象三大特性之一[封装性]的应用

复制代码 代码如下: <?php /* * 封装性:面向对象三大特性之一 * * 1.就是把对象的成员(属性,方法)结合成一个独立的相同单位,并尽可能隐藏对象的内部细节 * 访问权限修饰符 public protected private * private:私有的,用这个关键字修饰的成员,只能在对象内部访问(只有用$this访问) * * 属性可以封装: * 只要一个变量,需要在多个方法使用,就将这个变量声明为成员属性,可以直接在这个对象中的所有方法中使用 * * 成员属性,相当于这个对象中的