java中可不可以在一个类里使用数组引用另一个类的对象,如果可以怎么用??

java中可不可以在一个类里使用数组引用另一个类的对象,如果可以怎么用??,第1张

public class Test3 {
/
@param args
/
public static void main(String[] args) {
// TODO Auto-generated method stub

new Team('a','b','c');
}
}
class Person{
char selfName,oppoName;
}
class Team{
public Team(char p1,char p2,char p3){
Person p[]=new Person[3];
p[0]=new Person();
p[0]selfName=p1;
p[1]=new Person();
p[1]selfName=p2;
p[2]=new Person();
p[2]selfName=p3;
for(int i=0;i<plength;i++){
Systemoutprintln(p[i]selfName);
}
}
}

这个挺简单的,因为Java6里边引入的脚本支持,其架构本身就很清晰简单,总的说来就那么几个接口和一个工厂实用类。Java的脚本主要有以下三个重要概念:
ScriptEngine:负责编译执行具体的脚本。
ScriptContext:脚本执行的上下文环境。
Bindings:与Java环境之间的参数绑定。
其构架关系,见下图:
对于你的需求,我简单写了一个例子,如下:
String script = "for(i=0;i<nameslength;i++){print(names[i]+'\\n');}"; //打印数组的JS代码
//jdk6自带了一个javascript脚本实现,是来自Mozilla的一个开源实现
ScriptEngine engine = new ScriptEngineManager()getEngineByName("javascript");
Compilable compilable = (Compilable) engine; //这一步可以省略,某些脚本实现可能不支持
String[] names = new String[]{"pig","tiger","piger","family"};
Bindings bindings = enginecreateBindings(); //Local级别的Binding,Binding分为两种,局部和全局
bindingsput("names", names); //通过Bindings加入参数
CompiledScript compiledScript = compilablecompile(script); //解析编译脚本
compiledScripteval(bindings); //执行脚本
输出结果:<姬法灌盒弑谷鬼贪邯楷br />
pig
tiger
piger
family
----说明一下-----
也许你不是这个意思,但依我之见,在java里提到javascript,应该就是指Java的脚本支持。Java本身并没有脚本特性,它只写了一个框框,使用中需要具体的脚本引擎实现。因此,除了JavaScript, 理论上,Java可以支持任何脚本语言,只要有相应的实现。
但如果你指的客户端的JavaScript,即WEB页面上的JS,那就更简单了,只需要在JSP页面上生成相应的JS代码就行了,毕竟JSP最终只是一个Servlet类,用它来生成页面文件的HTML源码,同时,相应的JS代码也是用它来生成的。这个,你懂的。我觉得你的问题应该不是指这个,因为这个实在是太简单了。

做一个公共类,即public class,存放这些可以公用的方法或者变量数组之类的。
定义方法或者变量,也用public 修饰,例如public String []s =new String[20]

public class ClassOne {
public static void main(String[] args) {
ClassTwo two = new ClassTwo();
String [] s = twogetArr();
for (String string : s) {
Systemoutprintln(string);
}
}
}
class ClassTwo{
public static String[] ss = {"abc","def","ghi"};
public String[] getArr(){
return ss;
}
}
自己看吧。可以搞定的。。
ClassOne主方法里这样写一样的效果:
public class ClassOne {
public static void main(String[] args) {
String [] s = ClassTwoss;
for (String string : s) {
Systemoutprintln(string);
}
}
}

也就是对象数组嘛,通常定义一个数组格式是:
变量类型 [] 数组名 = new 变量类型[10];(动态初始化)
变量类型 [] 数组名 = new 变量类型[]{变量1,变量2,};(静态初始化)
那么对象数组就是,举例创建类A的对象数组:
A[] aArray = new A[10];(动态)
A[] aArray = new A[]{new A(),new A(),};(静态)
也就是说aArray 这个数组保存的是一系列A类对象(其实准确说保存的是A类对象的地址值)

因为kernel执行是立即返回的,所以所以您device0的kernel开始执行之后在host端会立即向下执行,并选择device2,执行属于device2的kernel。
所以说这两个kernel是并行的,如果较真的话,这还需要两个kernel执行的时间够长才行,以及两者不是同一时刻开始执行的。
如果您此时需要使用__constant__声明的变量,那么可以如下写:
__constant__ int dog;//两个设备都将拥有一个自己的dog,名字一样但是互不影响

int main()
{
cudaSetDevice(0);// 选device 0
cudaMemcpyToSymbolAsync(dog,); //给device 0的dog赋值
kernel<<<>>>();//在device 0的kernel里面使用device 0的dog的值
cudaSetDevice(2);// 选device 2
cudaMemcpyToSymbolAsync(dog,); //给device 2的dog赋值
kernel<<<>>>();//在device 2的kernel里面使用device 2的dog的值
}

简而言之

double a = ssuserGroup[x$x]moneyNum;
这步之前先用
ss赋值方法();//Data类中为数组赋值的的方法
为userGroup[x$x]赋值先


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12908967.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-28
下一篇 2023-05-28

发表评论

登录后才能评论

评论列表(0条)

保存