zoukankan      html  css  js  c++  java
  • Java中的属性和字段有什么区别

    Java中属性和字段的区别:

          1. Java中的属性,通常可以理解为其属名性时根据getset方法名得出的。 
           其规则是:

           去掉get或set后其剩余的字符串,如果第二个字母是小写的,则把第一个字母也变成小写 
           getAge---->age 

          2. 而字段,通常叫做“类成员”。 这两个概念是完全不同的。 
           属性只局限于类中方法的声明,并不与类中其他成员相关,属于javabean的范畴。

          例如: 
               void setA(String s){} String getA(){}

      当一个类中拥有这样一对方法时,我们可以说,这个类中拥有一个可读写的a属性(注意是小写a)。
      如果去掉了set的方法,则是可读属性,反之亦然。 
    比如有下面这个类:
    public class Person {  private int x;  public int getAge()
    
    

         3、在C#中,我们可以非常自由的、毫无限制的访问公有字段,但在一些场合中,我们可能希望限制只能给字段赋于某个范围的值、

           或是要求字段只能读或只能写,或是在改变字段时能改变对象的其他一些状态,这些单靠字段是无法做到的,于是就有了属性,

    属性中包含两个块:set和get,
    
    

          set块负责属性的写入工作,

    
    

          get块负责属性的读取工作。

    
    

         在两个块中都可以做一些其他操作,如在set中验证赋的值是否符合要求并决定是否进行赋值。

    
    

         当缺少其中一块时属性就只能读或只能写,set和get块中属性必需有一个,因为即不能读又不能写的属性是没有意义的。

    
    

    class MyClass

    
    

    {

    
    

           Private  string  name;

    
    

     public  string Name

    
    

     {

    
    

      get {return Name;}

    
    

      set {Name=value;}

    
    

     }

    
    

    }

    
    

    (1)属性可以保证安全,当不在本类中使用时可以保证使用属性名可以避免

    
    

    用字段的名字。 

    
    

    (2)属性的set和get函数可以限制字段的一些功能,以达到某种目的。

    
    

    如:

    
    
    private int a=0;
    
    
    public int A
    
    
    {
    
    
         get{return this.a;}
    
    
         set
    
    
         {
    
    
             if(value >= 0 && value <= 100)
    
    
                  this.a=value;
    
    
             else
    
    
                  throw new Exception("值的范围不合法。");
         }
    
    
    }
    (3)属性没有存储数据的功能,数据都存在字段中,所以只有修改字段的数据才能更改数据,修改属性的值没用。

    2、Java中的属性和字段有什么区别?
    答:
    Java中的属性,通常可以理解为get和set方法。
    字段,通常叫做“类成员”。
    属性只局限于类中方法的声明,并不与类中其他成员相关。

    例如: void setA(String s){} String getA(){} 当一个类中拥有这样一对方法时,我们可以说,这个类中拥有一个可读写的 a 属性(注意是小写a)。如果去掉了set的方法,则是可读属性,反之亦然。
    类成员(字段),通常是在类中定义的类成员变量,
    例如: public class A{ private String s = "123"; } 我们可以说A类中有一个成员变量叫做s。

    1、JAVA中声明属性
    package property;
    
    /**
     * java中的属性
     * @author mcgrady
     *
     */
    public class Employee {
        //声明两个私有字段
        private String name;
        
        private int age;
        
        //分别实现set和get方法
        public void setName(String name)
        {
            this.name= name;
        }
        
        public String getName()
        {
            return this.name;
        }
        
        public void setAge(int age)
        {
            this.age= age;
        }
        
        public int getAge()
        {
            return this.age;
        }
    }
    参考博客:http://blog.csdn.net/ljz2009y/article/details/8023499
  • 相关阅读:
    php之面向对象(2)
    PHP ON 阿里云的环境配置攻略
    InitPHP框架搭建高可用WEB应用
    PHP移动互联网开发笔记(6)——MySQL数据库基础回顾[1]
    5 个不用 Bootstrap 的理由
    http中get与post的区别
    django的CSRF保护机制
    博客园项目开发中的难点
    centos7.5静态网页基于nginx建站(python3.6 mysql5.7 nginx安装以及配置)
    python3面向对象常用特性知识点
  • 原文地址:https://www.cnblogs.com/1225hkl/p/4413715.html
Copyright © 2011-2022 走看看