文档章节

JAVA中关于set()和get()方法的理解及使用

hosealee
 hosealee
发布于 2013/05/30 17:11
字数 864
阅读 117462
收藏 30

对于JAVA初学者来说,set和get这两个方法似乎已经很熟悉了,这两个方法是JAVA变成中的基本用法,也是出现频率相当高的两个方法。

为了让JAVA初学者能更好的理解这两个方法的使用和意义,今天笔者来谈一下自己对这两个方法的理解,如果你对于这两个方法还有困惑甚至完全不知道这两个方法是做什么的,那你看下面这篇文章很有用。如果你对于set和get这两个方法已经很熟悉了,那么你完全不用看这篇文章。这篇文章是写给初学者的。

我们先来看看set和get这两个词的表面意思,set是设置的意思,而get是获取的意思,顾名思义,这两个方法是对数据进行设置和获取用的。而且,在类中使用set和get方法时,都是在set和get后面跟上一些特定的词来形成特定意思的方法名,比如setage()和getage(),表示设置年龄和获取年龄。
然后我们来了解一下JAVA面向对象编程中的封闭性和安全性。封闭性即对类中的域变量进行封闭操作,即用private来修饰他们,如此一来其他类则不能对该变量访问。这样我们就将这些变量封闭在了类内部,这样就提高了数据的安全性,当我们想要操作这些域变量怎么办呢?我们可以通过两种方法,第一中即通过public方式的构造器(或称构造函数),对象一实例化就对该变量赋值。第二种就是通过上面提到的set和get方法,这里我举一个特定的例子,我定义一个Person类,该类中有name、age这两个私有域变量,然后我定义setname()、getname()、setage()、getage()这四个方法,通过这四个方法来实现对name和age的操作。这样一来,我不用直接对Person类中的域变量操作,而是通过set和get方法间接地操作这些变量,这样就能提高域变量的安全性,同时又保证了域变量的封装型。

最后说说set和get方法的使用场景,一般来说set和get方法都是对私有域变量进行操作的,所以大多数都是使用在包含特定属性的类实体中。
现在你明白set和get方法了吧,其实这两个方法只是类中的setxxx和getxxx方法的总称。
在今后的开发过程中,只要你细心体会,结合JAVA中的一些宏观的知识。set和get方法还是很容易理解的,或许你还会领会一些其他的JAVA中的重要理论知识。

 

package cn.itcast.domain;
 
 import java.util.Date;
 
 public class User {
     private String username;
     private String password;
     private String gender;
     private Date birthday;
     private String email;
     public String getUsername() {
       return username;
 }
 public void setUsername(String username) {
     this.username = username;
 }
 public String getPassword() {
    return password;
 }
 public void setPassword(String password) {
   this.password = password;
 }
 public String getGender() {
   return gender;
 }
 public void setGender(String gender) {
   this.gender = gender;
 }
 public Date getBirthday() {
   return birthday;
 }
 public void setBirthday(Date birthday) {
   this.birthday = birthday;
 }
 public String getEmail() {
   return email;
 }
 public void setEmail(String email) {
   this.email = email;
 }
 
 }
 
 User u = new User();
 u.setXXX();
 u.getXXX();

你想给他赋值就用u.setXXX();    取这个类的对象的某个值 就get

本文转载自:

共有 人打赏支持
hosealee
粉丝 15
博文 13
码字总数 9552
作品 0
海淀
程序员
私信 提问
加载中

评论(7)

cheertt
cheertt

引用来自“_W_xing”的评论

Model model =new Model();
model.** = ******;
这样需要安全验证.?????
如果Model里面的属性是私有的,外部就不能访问了。就点不出来的。
_W_xing
_W_xing
Model model =new Model();
model.** = ******;
这样需要安全验证.?????
Cfw
Cfw

引用来自“九毛钱”的评论

莫名其妙。换个public 的get set方法就安全了 不是一样可以外部修改!!就是他妈的 麻烦了
get 和 set 可以在方法内部对参数进行校验,做安全检查后再进行赋值
qiaobujian
qiaobujian
itcast
qiaobujian
qiaobujian
itcast
九毛钱
九毛钱
莫名其妙。换个public 的get set方法就安全了 不是一样可以外部修改!!就是他妈的 麻烦了
ChaosWu
ChaosWu
不错,itcast
深入理解 ThreadLocal (这些细节不应忽略)

前言 对于 ThreadLocal 的使用,并不难。但要深入理解 ThreadLocal 的实现方式,需要细细揣摩。写本文前,我在网上看了很多关于 ThreadLocal 的分析,但却感到遗憾,因为很多文章存在着一定误...

徐志毅
04/11
0
0
ThreadLocal源码分析

阅读原文请访问我的博客 BrightLoong's Blog 一. 简介 提醒篇幅较大需耐心。 简介来自ThreadLocal类注释 ThreadLocal类提供了线程局部 (thread-local) 变量。这些变量与普通变量不同,每个线...

BrightLoong
05/28
0
0
Java并发编程:深入剖析ThreadLocal

想必很多朋友对ThreadLocal并不陌生,今天我们就来一起探讨下ThreadLocal的使用方法和实现原理。首先,本文先谈一下对ThreadLocal的理解,然后根据ThreadLocal类的源码分析了其实现原理和使用...

海子_枫子
2015/07/04
0
0
ThreadLocal与synchronized

1.区别ThreadLocal 与 synchronized ThreadLocal是一个线程隔离(或者说是线程安全)的变量存储的管理实体(注意:不是存储用的),它以Java类方式表现; synchronized是Java的一个保留字,只...

晨曦之光
2012/03/09
0
0
用 JNI 进行 Java 编程(1)

本教程是关于什么的? Java 本机接口(Java Native Interface (JNI))是一个本机编程接口,它是 Java 软件开发工具箱(Java Software Development Kit (SDK))的一部分。JNI 允许 Java 代码使...

Jerikc
2012/10/08
0
0

没有更多内容

加载失败,请刷新页面

加载更多

大数据教程(6.1)hadoop生态圈介绍及就业前景

1. HADOOP背景介绍 1.1、什么是HADOOP 1.HADOOP是apache旗下的一套开源软件平台 2.HADOOP提供的功能:利用服务器集群,根据用户的自定义业务逻辑,对海量数据进行分布式处理 3.HADOOP的核心组...

em_aaron
34分钟前
1
0
hadoop垃圾回收站

在生产生,hdfs回收站必须是开启的,一般设置为7天。 fs.trash.interval 为垃圾回收站保留时间,如果为0则禁用回收站功能。 fs.trash.checkpoint.interval 回收站检查点时间,一般设置为小于...

hnairdb
昨天
1
0
腾讯与Github的魔幻会面背后的故事…

10月22日,腾讯开源管理办公室有幸邀请到Github新晋CEO Nat Friedman,前来鹅厂参观交流。目前腾讯已经有近70个项目在Github上开源,共获得17w stars,世界排名11位。Github是腾讯开源的主阵...

腾讯开源
昨天
1
0
单例模式

单例模式(Singleton pattern)属于创建型设计模式。 保证一个类仅有一个实例,并提供一个访问它的全局访问点。 通常我们可以让一个全局变量使得一个对象被访问,但它不能防止你实例化多个对...

NinjaFrog
昨天
1
0
TypeScript基础入门之装饰器(三)

转载 TypeScript基础入门之装饰器(三) 继续上篇文章[TypeScript基础入门之装饰器(二)] 访问器装饰器 Accessor Decorator在访问器声明之前声明。 访问器装饰器应用于访问器的属性描述符,可用...

durban
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部