成员变量的使用问题?

问题描述

成员变量的使用问题?

为什么成员变量可以直接在方法中用?而不用new?比如这个

字符串类型的数组String [ ] str; (非静态)
作为成员变量后,可以在方法中直接赋值--str[0]="a";str[1]="b";
但是在方法中就必须先 new出来才能给其赋值---String [ ] str =new String[10];

解决方案

 String [ ] str;肯定得先new后才能赋值,如果类中,看看是不是在构造函数中初始化new了。

解决方案二:

C++中的成员变量的内存分配问题
Static成员变量的使用
C++ 类成员引用变量的使用

解决方案三:

string是一个特例,它不需要new。之所以这样是因为stirng特殊的实现机制,它是只读的,以及它太常用了,所以值得被特殊处理。

解决方案四:

必须使用new的,不管你是在类变量中还是方法变量中。都必须要使用new为数组分配空间的。

如果你是可变数组,建议你直接使用List而不是使用数组。

时间: 2024-08-04 02:17:04

成员变量的使用问题?的相关文章

java接口类型作为成员变量,请教下大家

问题描述 java接口类型作为成员变量,请教下大家 先有一个接口A,类B实现了接口A,而接口A的引用作为类B的一个成员变量,怎么理解这种写法??新手不太明白,谢谢大家 解决方案 面向借口的变成有一个最大的好处是方便扩展.B类中有一个成员变量的类型是A,比如说再有一个C impl A,那么B 中可以存放C对象,如果还有另外一个D也impl了A,同样也可以存放D的实例化对象(java的三大特性之一:多态),在不确定的情况下,就只好定义接口A,又下级调用者赋值,最根本的目的是为了程序的可扩展性. 解决

ASP 类成员变量、成员函数、构造析构函数

class CFoo    dim publicParam '用 dim 申明公有成员变量    private privateParam '用 private 申明私有成员变量    'publicParam = "公有" '不能在 class 标记以内.类函数以外为成员变量赋值    'const MAX_LEN = 5 '不能在 class 标记以内.类函数以外使用 const        '该函数为构造函数,在使用 set new 创建对象时,自动执行    private

成员变量和方法的override的详解

变量|详解 原题://file: MyMain.class class Base{int a=10;public void show(){  System.out.println(a);}} class Ext extends Base{int a=200;public void show(String s){  System.out.println(s);}} public class MyMain{public static void main(String[] argv){  Ext ob

C++:类的成员变量 声明顺序 与 初始化顺序 相同

类成员的默认初始化顺序是按照声明顺序进行, 如果使用初始化列表初始化成员变量, 则必须按照成员变量的声明顺序进行; 否则, 在变量之间交替赋值时, 会产生, 未初始化的变量去赋值其他变量; 同时GCC, 也会发出警告, 如: 'class::m_xxx' will be initialized after [-Wreorder] 代码: /* * BInsertSort.cpp * * Created on: 2014年4月15日 * Author: Spike */ #include <ios

PHP代码优化之成员变量获取速度对比

 这篇文章主要介绍了PHP中类的成员变量在4种方式下的获取速度对比,并详细分析了其中的原因,需要的朋友可以参考下 有如下4个代码示例,你认为他们创建对象,并且获得成员变量的速度排序是怎样的?   1:将成员变量设置为public,通过赋值操作给成员变量赋值,直接获取变量     复制代码 代码如下: <?php class Foo {     public $id; } $data = new Foo; $data->id = 10; echo $data->id; ?>   2:

android-Android自定义application的成员变量会不会被释放

问题描述 Android自定义application的成员变量会不会被释放 现在开发的一个Android APP,切到后台,当手机内存不足时,就会被释放,然后再进入时,提示崩溃退出,求大神 解决方案 这里有一些测试 解决方案二: 没有崩溃信息呀?这怎么知道为什么崩溃 解决方案三: 是的,Application的常量是不会释放的,而且还会引发内存泄露, 解决方案四: 是的,Application的常量是不会释放的,而且还会引发内存泄露,

Java中方法的重写与成员变量的隐藏

这篇文章讨论了Java面向对象概念中一个基本的概念–Field Hiding(隐藏成员变量) 在讨论这个问题之前,我们看一段特别特别简单的代码,请问一下方法的数据结果是什么? /**   * @author Hollis 17/9/27.   */  public class FieldOverriding {        public static void main(String[] args) {          Sub c1 = new Sub();          System.

ios-block里为什么不能操作成员变量?

问题描述 block里为什么不能操作成员变量? 我想在一个block里对一个成员变量赋值,但是提示" use of undeclared identifier self"错误, 请问这是怎么回事? 代码如下: void (^successBlock)(id ) = ^(id responseObject){ NSLog(@"responseObject:%@",responseObject); NSInteger result = [[responseObject

封装-java中 关于成员变量public权限的意义

问题描述 java中 关于成员变量public权限的意义 类为了封装 应该都已经讲成员变量设为private权限了 那public的意义是什么 好像看过一本c++的书 说语言发明者仅仅是为了操作简单 但是一直比较纠结 问问各位大神 解决方案 field只是不建议public,如果要public,请用方法或者属性,如果是const或者readonly的你可以考虑public出来,因为这些是不可变的

c++的问题-关于类的成员变量指向在堆上的对象的选择:指针/auto_ptr&amp;amp;lt;&amp;amp;gt;/shared_ptr&amp;amp;lt;&amp;amp;gt; ?

问题描述 关于类的成员变量指向在堆上的对象的选择:指针/auto_ptr<>/shared_ptr<> ? 在堆上的对象作为一个类的一个成员变量,我了解到的至少有三种方式(如下所示): class A{ } class B{ A* m_pA1; auto_ptrm_pA2: shared_ptrm_pA3: } B::B():m_pA1(new A)m_pA2(auto_ptr(new A))m_pA3(shared_ptr(new A)){ } 针对这三种方案,在什么情况下选择哪