我是靠谱客的博主 刻苦马里奥,这篇文章主要介绍Java:String数组(对象)、for-each循环String变量String数组for-each循环,现在分享给大家,希望可以做个参考。

String变量

当String变量没有初始值的时候,默认为null,输出也为null,String类型的数组也一样。

public static void main(String[] args) {
int[] ia = new int[10];
String[] a = new String[10];
System.out.println(ia[0]+2);
System.out.println(a[0]+2);
System.out.println(a[0].length());
}

在这里插入图片描述

在java中,如果用”=“运算符,不可能用一个对象去修改另一个对象的值,只能使变量指向不同的对象

public static void main(String[] args) {
String s = "hello";
s = "bye";
}

在这里插入图片描述
在这里插入图片描述

String数组

String类型的数组和String类型一样,不是本身数据的拥有者,只是数据的管理者,String类型的变量会指向一个存储对应数据的地方,而String类型的数组可以理解为多个String类型的变量,指向多个地址。
在这里插入图片描述

for-each循环

int类型的数组通过for-each循环,无法修改值

public static void main(String[] args) {
int[] ia = new int[3];
for(int i=0; i<ia.length; i++)
{
ia[i] = i;
}
for(int k:ia )
{
System.out.println(k);
k = 0;
}
for(int k:ia )
{
System.out.println(k);
}
0
1
2
0
1
2

而对象数组,可以通过for-each循环修改值

class Value
{
private int i;
public void set(int i) {this.i = i;}
public int get() {return i;}
}
public class test {
public static void main(String[] args) {
Value[] a = new Value[3];
for(int i=0; i<a.length; i++)
{
System.out.println(a[i]);
a[i] = new Value();
a[i].set(i);
}
for(Value v : a )
{
System.out.println(v.get());
v.set(0);
}
for(Value v : a )
{
System.out.println(v.get());
}
null
null
null
0
1
2
0
0
0

如上代码,Value类型的数组a的每一个元素都是一个Value类型的对象,每一个元素都可以调用对象的成员函数[get()|set()]。
int类型的for-each相当于将int类型数组中的一个元素赋值给对应的变量(v)。

而String类型的数组是数组的管理者而不是所有者,相当于将管理对应元素的指针给了(v)一份,v和数组中的指针都指向同一个元素,所以可以用v.get()改变String类型的数组元素。

在这里插入图片描述
在这里插入图片描述

在String数组的for-each循环中,v第一轮指向String数组第0个元素指向的那个数据,将其修改为0,第二轮指向第一个元素指向的那个数据,将其修改为0。

最后

以上就是刻苦马里奥最近收集整理的关于Java:String数组(对象)、for-each循环String变量String数组for-each循环的全部内容,更多相关Java内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(131)

评论列表共有 0 条评论

立即
投稿
返回
顶部