精华内容
下载资源
问答
  • JAVA成员变量赋值方法

    2021-01-29 19:06:25
    JAVA成员变量赋值方法 public class Demo04 { private String name; private int age; //有参赋值 public void fuZhi(String name,int age){ this.name=name; this.age=age; } //方法内赋值 public void ...

    JAVA成员变量赋值方法

    
    public class Demo04 {
         private String name;
         private int age;
    //有参赋值
        public void fuZhi(String name,int age){
            this.name=name;
            this.age=age;
    }
    //方法内赋值
        public void fuZhi() {
            this.name = "kang";
            this.age = 19;
        }
    //this方法
        public void setName(String name){
            this.name=name;
        }
        public void setAge(int age){
            this.age=age;
        }
        public String getName(){
            return name;
        }
        public int getAge(){
            return age;
        }
    
        public static void main(String[] args) {
            Demo04 s1 = new Demo04();
            Demo04 s2 = new Demo04();
            Demo04 s3 = new Demo04();
            s1.fuZhi("kang",19);
            System.out.println(s1.name);
            System.out.println(s1.age);
    
            s2.fuZhi();
            System.out.println(s2.name);
            System.out.println(s2.age);
    
            s3.setName("kang");
            s3.setAge(19);
            System.out.println(s3.getName());
            System.out.println(s3.getAge());
        }
    }
    
    展开全文
  • 文章目录参考文献成员变量赋值本地变量 参考文献 http://mail.openjdk.java.net/pipermail/core-libs-dev/2010-May/004165.html ...

    参考文献

    1. http://mail.openjdk.java.net/pipermail/core-libs-dev/2010-May/004165.html
    2. https://stackoverflow.com/questions/2785964/in-arrayblockingqueue-why-copy-final-member-field-into-local-final-variable
    3. https://stackoverflow.com/search?q=final+ReentrantLock+lock+%3D+this.lock

    成员变量赋值本地变量

    1. 在java并发包中经常能看到如下代码,为什么要这么写?

      final ReentrantLock lock = this.lock;
      这是Doug Lea流行的一种编码风格。这是一个极端的优化,其实可能不需要。可以期望JIT进行相同的优化
      
    2. 一般如下情况都是这么写的

      • 全部的循环代码块里(while、for)读取这些final的成员变量的时候
      • 部分或全部的非循环代码块里读取这些final的成员变量的时候
    3. 实验

      public class Test {
          private final User user = new User(1,"jannal");
          public void test(){
              System.out.println(user.getId());
              System.out.println(user.getUsername());
          }
      }
      
      public class Test2 {
          private final User user = new User(1,"jannal");
          public void test(){
              final User userlocal = this.user;
              System.out.println(userlocal.getId());
              System.out.println(userlocal.getUsername());
          }
      }
      
    4. 查看字节码:可以看出如果直接使用成员变量(Test.java)每一次都需要getfield和invokevirtual,这就两次调用。可以看出如果将成员变量赋值给本地变量(Test2.java)则只需要一次getfield,后续的调用不需要再getfield

      1. Test.java
      
       0 getstatic #7 <java/lang/System.out>
       3 aload_0
       4 getfield #6 <cn/jannal/queue/Test.user>
       7 invokevirtual #8 <cn/jannal/queue/User.getId>
      10 invokevirtual #9 <java/io/PrintStream.println>
      13 getstatic #7 <java/lang/System.out>
      16 aload_0
      17 getfield #6 <cn/jannal/queue/Test.user>
      20 invokevirtual #10 <cn/jannal/queue/User.getUsername>
      23 invokevirtual #11 <java/io/PrintStream.println>
      26 return
      
        
      2. Test2.java
        
       0 aload_0
       1 getfield #6 <cn/jannal/queue/Test2.user>
       4 astore_1
       5 getstatic #7 <java/lang/System.out>
       8 aload_1
       9 invokevirtual #8 <cn/jannal/queue/User.getId>
      12 invokevirtual #9 <java/io/PrintStream.println>
      15 getstatic #7 <java/lang/System.out>
      18 aload_1
      19 invokevirtual #10 <cn/jannal/queue/User.getUsername>
      22 invokevirtual #11 <java/io/PrintStream.println>
      25 return
        
      
    5. 总结原因

      • 加快访问速度,读取栈里面的变量只需要一条指令,读取成员变量则需要两条指令。实际上这种极端优化没有太大必要,JIT可以进行相同的优化
      • 避免成员变量引用被修改,导致本地变量引用的堆发生变化。
    展开全文
  • 成员变量赋值的两种方式的区别 setXxx()方法:修改属性值 构造方法:给对象中属性进行初始化 什么是成员变量? 1、成员变量定义在类中,在整个类中都可以被访问。 2、成员变量随着对象的建立而建立,随着对象的...

    给成员变量赋值的两种方式的区别

    setXxx()方法:修改属性值

    构造方法:给对象中属性进行初始化

    什么是成员变量?

    1、成员变量定义在类中,在整个类中都可以被访问。
    2、成员变量随着对象的建立而建立,随着对象的消失而消失,存在于对象所在的堆内存中。
    3、成员变量有默认初始化值。

    展开全文
  • php 成员变量赋值连接字符串报错

    千次阅读 2013-10-22 19:01:33
    今天遇到一个问题,对类中的一个成员变量赋值,一直报错。这个成员变量是一个数组,数组的value是常量和字符串的连接。 原来成员变量中如果包含常量或变量,并且连接字符串要通过构造方法对成员变量赋值,否则常量在...

    今天遇到一个问题,对类中的一个成员变量赋值,一直报错。这个成员变量是一个数组,数组的value是常量和字符串的连接。

    protected $config = array(
    	'dir' => SITE_ROOT . 'data/fileCache',
    	'file' => SITE_ROOT . 'data/fileCache/fileCache.class.php',
    );


    原来成员变量中如果包含常量或变量,并且连接字符串要通过构造方法对成员变量赋值,否则常量在类中不可见。

    	public function __construct()
    	{
    		$this->config = array(
    		'dir' => SITE_ROOT . 'data/fileCache',
    		'file' => SITE_ROOT . 'data/fileCache/fileCache.class.php',
    		);
    	}



    如果成员变量的值仅为常量则可以直接赋值,不用通过构造方法赋值

    展开全文
  • c++,给常成员变量赋值

    2014-11-12 11:22:00
    C++中,常成员变量只能在构造函数...(拥有常成员变量的类的构造函数必须对所有成员变量赋值。) #include <iostream> using namespace std; class Demo { public: int const a; const int b; ...
  • Java-final成员变量赋值

    2020-08-26 14:04:53
    java final关键字成员变量final声明方式final static 成员变量 final成员变量会在分配空间时定下来 final声明方式 final int a=10; final int a;...摘自文章:【小家java】java中为final变量赋值的几种方式
  • 成员变量赋值两种方式的区别 构造方法 给属性进行初始化 setXxx方法 修改属性值 这两种方式,在开发中用setXxx更多一些,因为比较灵活 getXxx方法 获取属性值 示例代码如下: class Demo2_Student1 { public ...
  • java final修饰成员变量赋值的二种方法
  • handler和子线程不能给成员变量赋值,求解决办法,各位大神好心指点一下
  • 通过ajax给js成员变量赋值问题

    千次阅读 2016-05-19 10:06:16
    使用ajax给成员变量赋值需要取消异步否则或出现赋值失败 解决办法 在ajax里面加上async :false, 既可 function check(){ //SerialNo重复校验 var SerialNoVal = $("#SerialNo").textbox("getValue"); var ...
  • 1,int成员变量赋值 class CTest { public:  CTest(void); public:   int m_x ;  int m_y; }; m_x = 1;对应的汇编  mov DWORD PTR [eax], 1 m_y = 3;对应的汇编  mov DWORD PTR [eax+4], 3 2,...
  • 今天遇到一个问题,对类中的一个成员变量赋值,一直报错。就是一个常量连接一个字符串class FileUploadController extends Controller{ private $path = BASEDIR."/Public/Upload"; //上传文件保存你路径 private ...
  • 成员变量赋值的两种方式的区别 A:setXxx()方法 修改属性值 B:构造方法 给对象中属性进行初始化 注:这两种方式,在开发中用setXxx更多一些,因为比较灵活。 代码解析: class Demo3_Person { public ...
  • Java成员变量赋值

    2014-03-11 14:25:52
    Java类成员变量分为普通成员变量,final成员变量和静态成员变量。 一 、对于普通成员变量的初始化,可以分为以下几种。  1、在声明时赋值。例如 int x = 5;  2、在代码块或者类方法中赋值。 例如:  class ...
  • 1、Java类的成员变量在被修饰为public、protected和包访问权限时,可以在不同层次上直接给成员变量赋值。 但是,赋值的前提是:必须存在持有成员变量的对象。而对象的初始化必须调用构造函数,所以构造函数是必不可...
  • java filter中成员变量赋值之后为什么之后再从新访问他的值还在
  • 给结构体中std::string成员变量赋值失败的行为:在c++中结构体中包含std::string时,要用new去分配内存,不用malloc在用new一个对象时,不能用memset去赋0操作,否则不能赋值...
  • 转专业水混的课,技术没有学到家还是要从头补。。 赋值形式第一种 使用成员函数来赋值 类内公有成员和私有成员都可以被赋值 ...//属性 成员变量 成员属性 int number; void set(string a, int b){ //行为 成员函...
  • 第七章 第11节 面向对象(构造方法2-初始化成员变量赋值)
  • 周六上午没课,周日休,周一清明节 做了两件事: 一.用时间堆出来记忆方式,不想给自己增加记忆负担。 二....一....2.关于加载类、创建对象过程中,静态成员...不要说静态、非静态,非静态就两种(成员变量赋值语句、代码.
  • 使用构造方法: 创建类的实例(对象)时使用构造方法 使用this关键字: 创建对象,为对象中的成员赋值时使用 成员变量与局部变量重名时使用 ...给成员变量赋值: 通过构造方法赋值 通过setXxx()方法赋值
  • public class ConstructorVar{  //测试: 构造代码块+ 成员变量赋值---》javap: 执行过程  int a=10;  {   a=20;  }   //构造方法  public ConstructorVar(){  a=30;  }   public Constructo...
  • 常见golang的struct赋值有两种: ... 2)先定义变量,再赋值 val := new(Options) val.UID = int(3)   赋值设计模式:  1)每个属性一个方法,方法名称与属性有关  2)赋值方法的返回值是统一的...
  • 和Java相同,Objective-C也是采用动态类型,也就是程序员可以通过通过成员变量名字来获取和设置成员变量的值,但是Objective-C和Java有不尽相同。Java中所有的变量、函数都可以通过字符串来获取其地址,而Objective-...
  • import java.lang.reflect.Field;... //给num成员变量-赋值 num.set(obj, 1234); //获取num成员变量的值 num.get(obj); System.out.println(num.get(obj)); //最后打印结果:1234 } } Student类
  • 1.在OC中 点语法 是特有的,只是用来对成员变量赋值与取值: // 声明Iphone类 @interface Iphone : NSObject {  int _cpu ; } // 按照约定的赋值方法 - (void)setCpu(int )cpu; // 按照约定的取值...
  • 代码块 作用: 对Java类或对象进行初始化 静态代码块: 通常用于初始化静态属性 1、可以有输出语句 ... 3、可以对非静态的属性进行初始化,也可以对静态的变量和方法进行调用 4、多个非静态代码块,由上到下

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 10,886
精华内容 4,354
关键字:

成员变量赋值