首页
学习
活动
专区
圈层
工具
发布

关于 java 中的 set,get方法,而为什么不推荐直接使用public

我不知道有没有人遇到过,有一段时间,我都觉得那些 set,get的用处何在,我直接写一个public直接拿不就行了,多爽,但是随着使用的频繁,越来越想去搜索一下这个问题,而不是按照官方的推荐,前辈们的使用都是建议...set,get....这里引入其中的一句话: 在任何相互关系中,具有关系所涉及的各方都遵守的边界是十分重要的事情,当创建一个类库时,就建立了与客户端程序员之间的关系,他们同样也是程序员,但是他们是使用你的类库来构建应用...综上所述,写到这里,我诞生了一个想法,其实set ,get ,public,对于它们使用完全取决于我们程序员自己,为了让项目之间的逻辑更加清晰,有些标准自上而下,慢慢的传了下来,无论你使用那种,但是有一个东西是无法避免的...补充说明,set字面意思设置,get获取,我们了解一下java面向对象编程的封闭性与安全性,private 修饰的set get方法将方法封闭在了一个特定类中,其他类就无法对其变量进行方法,这样就提高了数据的安全性

2.1K20

Dart 中的类的定义、构造函数、私有属性和方法、set与get、初始化列表

Dart是一门使用类和单继承的面向对象语言,所有的对象都是类的实例,并且所有的类都是Object的子类。 1. Dart类的定义 ? 2. Dart类的构造函数 ? 3....在文件中引入public下的Person.dart文件,然后实例化。 ? 5....Dart中的私有属性和私有方法 Dart和其他面向对象语言不一样,没有 public、private、protected这些访问修饰符,但是我们可以使用下划线把一个属性或者方法定义成私有。...需要注意的是,定义为私有属性和私有方法的类必须要抽离放在一个单独的文件中,然后才能真正起到私有的效果。 首先将含有私有属性或私有方法的类放在一个单独的模块中。 ?...在文件中引入含有私有属性和私有方法的类。 ? 6. Dart中get与set修饰符 ? 7. Dart中的初始化列表 Dart中可以在构造函数体运行之前初始化实例变量。 ?

7.8K40
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    作为Java开发,你一定要了解面向对象编程中为什么要使用get和set方法

    一、由一个问题开始 在进行面向对象开发中,在编写一个Class的时候,会定义这个Class的属性(字段)为Private,然后去生成对应的get和set方法,通过这样的方式去对属性进行操作,那你有没有思考过为什么要这样做呢...可以被同一包中的所有类访问 如果子类没有在同一个包中,也不能访问 由表格可知,设置成 private 只能够被当前类访问, 因为其他类不能够访问这个类中private 定义的属性,也就不能进行更改操作...但是很多时候,一个类中的属性是需要被其他类所使用(获取值/修改值)的,那么其他类要使用这个类中私有属性,当前类就必须提供可供外部类使用的方法,如公共的public 的方法,此时外部的其他来就可以通过提供的方法来操作私有的属性了...上面这两段说明了问题中 为什么要这样做的第一个答案:隐藏内部实现细节,保证代码的安全,同时也可以提升数据的安全性。...使用private并提供get、set, 我们可以在修改age的 set方法中进行判断,如果age值不在 0—150之间,那么不容许对age进行修改的。

    1.3K30

    第一步:文本框。

    这种控件要实现某一种功能,比如分页的功能,添加、修改数据的功能,查询的功能。 原先呢还不会使用接口了什么的,所以呢代码写得有点不太“好看”,现在使用接口、继承了什么的来整理一下。...先发一个“文本框”的吧,就是继承系统的 TextBox,然后加上几个属性、方法。...使用正则表达式来验证,在具体点说呢就是使用了一个不知道是谁写一个js函数,就是 checkForm(oForm) 来验证的。...2、为什么使用VB.net来写?     很简单,好写。用VB.net写代码还是很方便的,也是很宽松的。...好多在C#里不能通过编译的代码,在VB.net里面就可以正常使用,而且提示也是很“智能”的,当初刚写控件的时候还是不太熟悉,VB.net是很好的选择。 以后会陆续说明其他的控件。

    2K70

    提供第三种代码生成方式——通过自定义BuildProvider为ASP.NET提供代码生成

    对于ASP.NET应用的开发者来说,你可能不知道什么是BuildProvider,但是你几乎无时无刻不在使用它所带来的代码生成机制。当你创建一个.aspx文件的时候,为什么会自动创建对应源代码?...当你在该.aspx页面中以XML的方式添加一个按钮,源代码中为什么会自动添加一个同名的属性。...string Value { get; private set; } 5: public string Category { get; private set; } 6:...XML文件中,XML元素代码一个具体的MessageEntry,相应的属性(Attribute)和MessageEntry的属性(Property)相对应。...如果你采用基于C#的WebSite,生成的代码时如下所示。由于CodeDOM的语言无关性,你也可以将MessageBuildProvider用于基于VB.NET的ASP.NET应用。 ?

    2K110

    vb语法菜鸟教程_VS VB

    VB.Net – 基本语法 VB.Net是一种面向对象的编程语言。 在面向对象编程方法中,程序由通过动作相互交互的各种对象组成。 对象可能采取的动作称为方法。...相同类型的对象被认为具有相同的类型,或者更经常地被称为在同一类中。 当我们考虑VB.Net程序时,它可以定义为通过调用对方的方法进行通信的对象的集合。...常量被视为常规变量,除了它们的值不能在它们的定义之后被修改。 enumeration 枚举是一组命名的整数常量。 声明常量 在VB.Net中,常量是使用Const语句声明的。...它在下列语境下使用: 声明声明 函数语句 Sub语句 6 BYVAL 指定传递参数时,调用过程或属性不能更改调用代码中参数下面的变量的值。...声明语句 声明语句用于命名和定义过程、 变量、 属性、 数组和常量。当你声明的编程元素时,您还可以定义其数据类型、 访问级别和范围。

    19.3K20

    从数据到代码——通过代码生成机制实现强类型编程

    string Value { get; private set; } 5: public string Category { get; private set; } 6:...XML文件中,XML元素代码一个具体的MessageEntry,相应的属性(Attribute)和MessageEntry的属性(Property)相对应。...要实现上面的功能实际上包含两个步骤:一是动态解析包含消息定义的XML文件,并生成我们希望结构的一个代码定义,而是通过和VS进行集成,借助VS自定义工具将前面生成的内容真正写入到一个具体的.cs文件中。...而这个对象图包含C#或者VB.NET代码包含的基本元素:命名空间、类型、类型成员(方法、属性、构造函数、事件等),并且包括方法实现的具体语句(Statement)。...首先在BuildCodeObject方法中,添加了一个命名空间(Artech.CodeDomGenerator),并在该命名空间中定义了一个Messages的类。

    1.7K100

    探秘VB.net中的shared与static

    中也有static的踪影,那么在VB.net中,static是不是和C#中的static一样呢?...PI的值 Public Shared PI As Double = 3.14 ' End Class    上面两个小例子中,都是把PI定义为静态的值,然后供需要使用...PI的类或其他地方来调使用,而且此时在VB.net实现的例子中,PI类中的Shared无法换成Static,否则就会出现下面的错误提示: ?        ...因此可以判断,在VB.net中的static主要用来修饰的是静态变量,这里强调“静态”,主要是用static修饰的变量在程序运行时,在它的生存期内都是一直存在并保留着最新值,在下次调用时,不会被重新初始化...跟上面的PI一样,任何大小的圆计算面积时都要使用PI值,所以把它用Shared来修饰。         什么时候用Shared?         上面说到:“只能对局部变量使用static。

    2.9K10

    C++ .NET编程:托管C++概述

    所有的C#、VB.NET、JScript.NET默认时都是托管的,但Visual C++默认时不是托管的,必须在编译器中使用命令行选项(/CLR)才能产生托管代码。    ...(4) 简化属性操作  在__gc类中可以使用.NET的属性,这个属性简化了属性函数的调用操作,这与标准C++中的属性不一样。在标准C++中分别通过get_和put_成员函数来设置或获取相关属性的值。...Size = 10; // 调用set_Size int i = pG->Size; // 调用get_Size Console::WriteLine(i); }    程序结果为:    set_属性...   get_属性    10    需要说明的是,托管C++使用__property关键字来定义一个属性的成员函数。...从代码中可以看出设置和获取属性的成员函数名称中分别使用了set_和get_,这样编译器会自动生成一个伪成员变量Size,这个变量名是set_和get_成员函数后面的名称。

    2.1K20

    使用VB.NET 创建.NET6 Minimal Api(全网首发)

    Minimal API是.Net 6中新增的模板,借助C# 10的一些特性以最少的代码运行一个Web服务。本文使用VB.NET ,完成一个简单的Minimal Api项目的开发。...(估计是全网首发吧),找遍了百度,必应,Github都没找到VB.NET版本的Minimal Api项目,找到的都是C#的项目,毕竟专为C#10而生!!! 那么我们为什么要用这玩意呢?...首先,我们平时开发的项目,都是使用有限的几个接口,但是又不想用ASP.NET WebAPI这么冗余!...那么我们就会找一下简单高性能的Webapi代替,刚好.NET6给了.NET开发者一个期望,可惜在VS项目里,并没有找到VB相关的模板,VB被抛弃的孩子!...先来张效果图: 因本人不会使用C#,所有鼓捣了挺久的,特作一个小记录!!!!

    4.4K20

    在VB.net中,一维数组排序有什么方法

    在VB.NET中,你可以使用多种方法对一维数组进行排序。 以下是一些常见的方法: 1.使用Array类的Sort方法 Array.Sort 方法是最简单且直接的方式。...T)的Sort方法 如果你希望保持原始数组的顺序,或者想要进行更复杂的排序(例如自定义比较器),那么可以将数组转换为 List(Of T),然后使用 List(Of T) 的 Sort 方法。...VB.NET和C#通用知识点学习笔记 序 列表 1 在VBA或VB.net中Split()与Replace()的用法 2 在VB.net中,List(of string())与List(of List(...of string))有什么区别 3 VB.net中,List有什么方法与属性 4 在VB.net中,Stopwatch有什么属性与方法 5 VB.net的多线程System.Threading 6 VB.NET...中,多线程的学习笔记(一) 7 VB.net中Listbox 8 在VB.net中,数据去重有什么方法

    1.4K10

    累了,代码异常!

    1.1 属性、方法、事件 在面向对象的分析与设计中,属性、方法和事件是对象的三个基本构成部分,它们描述了对象的特性和行为。 属性:属性描述了对象的状态。...例如,在一个汽车对象中,颜色、型号、最高速度等可以被看作是汽车的属性。在面向对象编程中,属性通常被表示为字段变量。通常情况下属性的名称一般是名词; 方法:方法描述了对象可以执行的操作。...但对于 C++ 的影响后的语言,更多的是将属性和方法分开,如 VB.NET 中 Property Get/Set C# 中的 get/set,JavaScript 中的 get/set 关键字,Delphi...比如 VB.NET 中的委托用于定义一个事件的签名(类型),再定义事件这个对象。那么当属性改变时,目标对象就可以直接发起这个委托的事件。...1.4 小结 面向对象的分析与设计中,异常控制是在课本中较少提到的,为了解决对象在属性修改、方法调用、事件驱动时导致的状态的改变,异常设计也被广泛地运用到面向对象的分析与设计中——即当分析对象失效之后,

    54541

    窗体UserForm——代码插入不定数量带事件的控件

    在前面的例子里,我们使用代码插入了不定数量的选项按钮,但是为了激活工作表,还手动插入了一个命令按钮,通过遍历控件的方式,找到要激活的工作表。...要实现点击选项按钮就激活工作表,显然需要插入的选项按钮具有某个事件,在使用代码插入控件的时候,是可以同时让控件具有事件的: Private WithEvents ob As MSForms.OptionButton...这个时候我们就希望如果能使用代码添加事件就好了,可是VBA没有设置这样的接口。 VB.NET这样的语言是有AddHandler 这样的方法去使用代码添加事件的。 那么在VBA里还有没有办法呢?...类就是一种对象,而且这种对象就是可以让使用者来自定义的。...而如果使用Property属性的方法,在Property Let里,就可以去检测传递的参数是否符合要求,不符合要求的情况下就提前退出Property,就能够避免设置非法的值。

    1.6K20

    一款开源、强大、简单易用的 .NET 假数据生成利器

    前言 在日常的 .NET 项目开发中,我们经常需要大量的测试数据来验证业务逻辑、填充数据库、进行性能测试或者做产品演示。手动编写这些测试数据不仅枯燥乏味、浪费时间,而且难以覆盖各种边界场景。...Orders { get; set; } } 生成随机用户信息 使用 Bogus 快速生成随机用户姓名、邮箱、地址、电话等关联数据: /// ...EF Core 填充 Blog & Post 数据: /// /// EF Core 数据库种子数据填充 /// 适合开发/测试环境,在应用启动时自动填充数据...publicint BlogId { get; set; } } 在 Program.cs 启动时填充: public classProgram { public...Bogus 数据集 开发者可以轻松扩展 Bogus,添加自定义的数据生成器: /// /// 为 Bogus 的 Faker 类提供食品相关的自定义假数据扩展方法

    16210
    领券