关于JAVA的new方法

dlksajfklj 发布于 2015/03/16 14:37
阅读 616
收藏 0

关于JAVA的new方法 public class StringDemo{

   public static void main(String args[]){
      char[] helloArray = { 'h', 'e', 'l', 'l', 'o', '.'};
      String helloString = new String(helloArray);  
      System.out.println( helloString );
   }
}
为何需要String 加这个修饰 新创建对象的类名的东西?有何意义?
不知道是否可以简单的用:helloString = new String(helloArray); 岂不是更好点?
若是有知道的朋友,请指教下,php需要转行的,看不懂这个语法的意义是什么作用,暂时无法明白。

加载中
0
杨子江
杨子江
java是强类型语言,必须指明变量的类型,否则编译器不认识而且拒绝编译,认为你在引用未声明的变量。
0
xuegao521
xuegao521

String helloString = new String(helloArray);   你这个写法是错误 的, 应该编译都不会通过 

变量的命名有问题 hello String

甘薯
甘薯
亲,人家变量名中间没有空格你看错了...
0
甘薯
甘薯

看来楼主是从php转过来的吧.

php不需要声明变量即可使用, 也无需声明变量的类型. 因为它的任何变量都统一用zval格式保存.

java是必须要声明的, 不然它无法编译和分配合适大小的内存给变量.

0
duty
duty
乌龟的屁股=规定。
0
Brin想写程序
Brin想写程序
玩静态语言的时候,要把自己想象为 圣斗士,使用前必须把招数大声声明出来。
0
气质舞王尼古拉斯赵四
气质舞王尼古拉斯赵四
刚开始用php的时候刚好相反,总觉得前面没类型少点什么,有点不保险的感觉。
0
Nox
Nox

希望以下的代码能够说明问题

public interface A{
	public String a();
}

public interface B{
	public String b();
}

public class C implements A,B{

	@Override
	public String b() {
		return "b";
	}

	@Override
	public String a() {
		return "a";
	}
	
}


public class MainClass{
	public static void main(String args[]){
		A a = new C();
		System.out.println(a.a());
		//不可以调用:System.out.println(a.b());
		
		B b = new C();
		System.out.println(b.b());
		//不可以调用:System.out.println(b.a());

		C c = new C();
		System.out.println(c.a());
		System.out.println(c.b());
	}
}



0
d
dlksajfklj

引用来自“木子叶”的评论

看看类型推导这个概念能不能帮助你:http://zh.wikipedia.org/wiki/%E7%B1%BB%E5%9E%8B%E6%8E%A8%E8%AE%BA
这个有启发性的,了解到编程的字符编码的推理关系,谢谢
0
d
dlksajfklj

引用来自“Brin想写程序”的评论

玩静态语言的时候,要把自己想象为 圣斗士,使用前必须把招数大声声明出来。
嗯是这样,但是若是C的话,只要声明下就可以使用,不用重复的那个

java:  String helloString = new String(helloArray);   --->String

c:int x;x+=1;

可以直接使用变量名

返回顶部
顶部