`

为什么要private再setget?

阅读更多

安全?规范?

http://topic.csdn.net/u/20070108/12/059a1fcd-ae2f-4833-866a-149fa630c7e3.html

 

Give   you   an   example.   Let 's   say   you   have   class   A   and   B   as   follows.
-----------------------------------------------------
public   class   A   {
        public   int   numberA;
}

public   class   B   {
        public   A   a;
        public   int   numberB;

        public   B()   {
                a   =   new   A();
                numberB   =   0;
        }

        public   int   someMethod()   {
                return   numberB   /   a.numberA;
        }
}
------------------------------------------

Then   someone   else   is   using   your   compiled   class   files.
-----------------------------------------------------
public   class   C   {
        public   static   void   main(String[]   args)   {
                B   b   =   new   B();
                b.numberB   =   10;
                b.a.numberA   =   0;
                b.someMethod();
        }
}
-------------------------------------------

Then   this   guy   complain   that   your   program   has   problems.   What   can   you   do?

 

Alternatively,   we   have   the   following.
--------------------------------------------------------
public   class   A   {
        private   int   numberA;
        public   getNumberA()   {
                return   this.numberA;
        }
        public   void   setNumberA(int   number)   {
                if   (number   >   0)
                          this.numberA   =   number;
        }
}
----------------------------------------------------
Your   program   is   protected   (although   very   much   limited   in   the   example).

You 'd   better   read   materials   about   OO   Encapsulation   to   study   further.

分享到:
评论

相关推荐

    C# set get用法

    ### C#中的Set和Get用法详解 C#是一种强大的面向对象编程语言,它提供了丰富的功能来帮助开发者创建高效、安全且易于维护的软件。在C#中,`set`和`get`方法是实现封装的关键组成部分,它们主要用于定义属性的行为,...

    C# get与set操作.rar

    在C#编程语言中,`get`和`set`是访问器方法,它们用于属性(Property)的定义,提供了一种安全的方式来读取和修改对象的私有成员。属性是类的一个特性,它允许我们像访问字段一样访问数据,但同时提供了额外的控制和...

    经典讲解C# get set.pdf

    一、为什么需要 get set 函数? 在面向对象编程中,类的成员变量通常是私有的,以保护类的内部状态不被外部修改。但是,为了使类的成员变量能够被外部访问和修改,就需要使用 get set 函数。get set 函数可以将类的...

    Eclipse get/set方法 自动加上字段注释

    3. 在这个对话框中,你可以看到所有可选的成员变量,勾选你想要生成get和set方法的变量。默认情况下,Eclipse会为每个方法添加标准的Javadoc注释,如下所示: ```java /** * @return the name */ public String ...

    Visual Studio 利用宏直接生成Get和Set属性

    本文档介绍了一个具体的宏实现方案,即通过 Visual Studio 宏来自动为指定字段生成 Get 和 Set 属性。 #### 宏的基本结构与实现 该宏主要由三个部分组成:`EncapsulateField`、`EncapsulateAllFields` 和 `...

    生成getSet方法和注释

    在编写大量具有属性的类时,手动为每个属性编写get和set方法可能会非常耗时。为了解决这个问题,开发者可以利用代码生成工具或IDE(如IntelliJ IDEA、Eclipse)的自动化功能来快速生成这些方法,同时添加注释以提高...

    可以在 VS2008 里自动设置 set get 属性的一个 宏

    2. 在类的定义中,找到你想为某个成员变量添加get和set方法的地方。 3. 选中该成员变量,然后按下VS2008的快捷键“Alt+Shift+R”。这会弹出一个菜单,其中包含了多种重构选项。 4. 在重构菜单中,选择“属性”或者...

    java中set和get方法的理解

    ### Java中Set和Get方法的理解 #### 一、引言 在Java编程中,`set`和`get`方法是非常常见的编程模式,特别是在面向对象编程(OOP)中。这两个方法通常用于封装类的属性,从而提供了对这些属性的访问和修改的方式。...

    JAVA动态对象装配实现 测试--初步实现bean的set/get功能

    通过`DYNC_Object.java`的示例,我们可以学习如何利用反射来实现bean的`set`和`get`操作,这为我们提供了更大的程序设计自由度,使得代码能够适应不断变化的需求。理解并熟练掌握这一技术,对于提升Java开发能力非常...

    flex例程一,关于如何建GET,SET

    例如,我们有一个名为`Person`的类,其中包含一个名为`age`的属性,我们可以这样定义GET和SET方法: ```actionscript public class Person { private var _age:uint; public function get age():uint { return ...

    Vehicle.java

    • 将Vehicle类中的Passengers、fuelcap、mpg属性改为 private的并添加set和get方法; • 为Truck类添加cargo属性、get和set方法; • 为Truck类添加构造函数,接收passengers、fuelcap、 mpg、cargo等参数; 编写...

    经典讲解C# get set

    为了解决这一矛盾,C#引入了`get`和`set`访问器,它们允许外部代码以受控的方式访问和修改`private`变量,从而既保证了数据的安全性,又保持了良好的代码交互性。 - **`get`访问器**:用于获取私有变量的值,当其他...

    JavaBean getset

    这个"JavaBean getset"的主题聚焦于JavaBean中的get和set方法。 首先,让我们理解什么是getter和setter方法。在面向对象编程中,getter和setter方法是用于访问和修改对象属性的方法。getter方法用于获取对象的属性...

    eclipse get set方法自动注释

    要自定义模板,请按照以下步骤操作: 1. 打开Eclipse首选项(Window > Preferences 或者 Preferences > Windows,取决于你的操作系统)。 2. 在左侧导航树中,展开"Java" > "Code Style" > "Code Templates"。 3....

    自定义生成set,get方法注释class文件

    这里提到的"自定义生成set,get方法注释class文件"就是一种这样的自动化工具,它可以快速地为类的各个字段自动生成带注释的getter和setter方法。 在MyEclipse这样的集成开发环境中,提供了便捷的方式来进行getter和...

    经典讲解C# get set.docx

    C#中的get和set是访问器,用于控制类的私有成员(如字段)的访问。它们是构建属性的关键部分,属性是C#中一种特殊的方法,提供了对类内部数据的封装和保护。属性并不直接表示内存位置,而是提供了一种访问和修改对象...

    myeclipse -get set方法生成注释和字段注释以及具体设置步骤

    - 在弹出的对话框中,你可以选择要生成哪些方法(如get、set、is等),以及是否包含final或static变量。确认后,MyEclipse会自动生成对应的方法。 2. **生成字段注释** - 生成字段注释通常是在创建字段时进行。当...

    深入C#中get与set的详解

    释一:属性的访问器包含与获取(读取或计算)...以下是返回私有字段 name 的值的 get 访问器: 代码如下:private string name; // the name fieldpublic string Name // the Name property{ get { return name; }}

    getandset.pdf

    属性头用于指定属性的名称、类型和访问修饰符,而存储器则用于定义属性的get和set访问器。 2. get和set访问器 get访问器用于从对象中读取数据,而set访问器用于向字段写入数据。在C#中,get和set都是可执行的程序...

Global site tag (gtag.js) - Google Analytics