请教JAVA中的参数赋值问题 它们是两个不同的概念第二个c是方法传进来的值第一个是什么呀他是一个租得值你付给了c.a等 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Java是by value形式来进行参数传递的。 不会出问题啊!谁说JAVA是BY VALUE的,简直是胡说啊!那克隆方法是干吗用的,如果是BY VALUE它不是毫无用武之地吗! import java.awt.*;import java.awt.event.*;import java.awt.print.*;import java.awt.datatransfer.*;import java.io.*;import javax.swing.*;import javax.swing.event.*;import javax.swing.text.*;import javax.swing.text.PlainDocument;import com.jnotepad.inster.*;import java.awt.event.ActionEvent;import com.jnotepad.format.*;import javax.swing.JMenu;import com.jnotepad.view.*;// 定义主类public class JNotepad extends JPanel{// 定义一个菜单条JMenuBar jmb = new JMenuBar();//定义文件菜单JMenu file = new JMenu("文件");// 定义编译菜单JMenu edit = new JMenu("编辑");// 定义 帮助菜单JMenu help = new JMenu("帮助");// 定义 插入菜单JMenu inster= new JMenu("插入");// 定义格式 菜单JMenu format = new JMenu("格式");// 定义工具菜单JMenu tools =new JMenu("工具");// 定义表格菜单JMenu form =new JMenu("表格");// 定义窗口菜单JMenu window = new JMenu("窗口");// 定义 视图菜单JMenu view = new JMenu("视图");// 定义 工具条JToolBar toolBar = new JToolBar();// 定义菜单项JMenuItem jmi;JMenu jm;// 给菜单中添加拷贝菜单项edit.add(jmi = new JMenuItem("拷贝", KeyEvent.VK_C));//菜单项事件注册jmi.addActionListener(new copyL());// 给菜单中添加剪切菜单项edit.add(jmi = new JMenuItem("剪切", KeyEvent.VK_T));//菜单项事件注册jmi.addActionListener(new cutL());// 给菜单中添加粘贴菜单项edit.add(jmi = new JMenuItem("粘贴", KeyEvent.VK_P));//菜单项事件注册jmi.addActionListener(new pasteL());// 给菜单中添加删除菜单项edit.add(jmi = new JMenuItem("删除", KeyEvent.VK_D));//菜单项事件注册jmi.addActionListener(new deleteL());// 在菜单中添加一条分隔线edit.addSeparator();// 给菜单中添加全选菜单项edit.add(jmi = new JMenuItem("全选", KeyEvent.VK_A));//菜单项事件注册jmi.addActionListener(new selectAllL());// 给菜单中添加帮助主题菜单项help.add(jmi = new JMenuItem("帮助主题", KeyEvent.VK_A));//菜单项事件注册jmi.addActionListener(new aboutL());// 添加布局管理(使用边界布局)setLayout(new BorderLayout());file.setMnemonic(KeyEvent.VK_F);jmb.add(file);edit.setMnemonic(KeyEvent.VK_E);jmb.add(edit);view.setMnemonic(KeyEvent.VK_V);jmb.add(view);view.add(jmi=new JMenuItem("普通(N)")) ;view.add(jmi=new JMenuItem("Web版式(W)")) ;jmi.setIcon(new ImageIcon(getClass().getResource("Image7.gif"))) ;view.add(jmi=new JMenuItem("页面")) ;view.add(jmi=new JMenuItem("大纲")) ;view.addSeparator();view.add(jmi=new JMenuItem("任务窗格")) ;view.add(jmi=new JMenuItem("工具栏")) ;view.add(jmi=new JMenuItem("标尺")) ;view.add(jmi=new JMenuItem("显示段落标记")) ;view.add(jmi=new JMenuItem("网格线")) ;view.addSeparator();view.add(jmi=new JMenuItem("文档结构图")) ;view.add(jmi=new JMenuItem("页眉和页脚")) ;view.add(jmi=new JMenuItem("脚注")) ;jmi.setEnabled(false) ;view.add(jmi=new JMenuItem("标记")) ;view.addSeparator();view.add(jmi=new JMenuItem("显示全屏")) ;view.add(jmi=new JMenuItem("显示比例...")) ;jmb.add(inster);inster.add(jmi=new JMenuItem("分隔符……",'i'));inster.add(jmi=new JMenuItem("页码……"));inster.add(jmi=new JMenuItem("日期与时间"));inster.add(jmi=new JMenuItem("域..."));inster.add(jmi=new JMenuItem("符号..."));inster.add(jmi=new JMenuItem("批注"));inster.addSeparator();inster.add(jmi=new JMenuItem("数字..."));inster.add(jmi=new JMenuItem("引用"));inster.add(jmi=new JMenuItem("Web组件"));jmi.setEnabled(false) ;inster.addSeparator();inster.add(jm=new JMenu("图片"));jm.add(jmi=new JMenuItem("剪贴画"));jm.add(jmi=new JMenuItem("来自文件"));jm.add(jmi=new JMenuItem("自选图形"));jm.add(jmi=new JMenuItem("艺术字"));jm.add(jmi=new JMenuItem("图表"));inster.add(jmi=new JMenuItem("图示(G)..."));inster.add(jm=new JMenu("文本框"));jm.add(jmi=new JMenuItem("横排"));jm.add(jmi=new JMenuItem("竖排"));inster.add(jmi=new JMenuItem("文件..."));inster.add(jmi=new JMenuItem("对象..."));inster.add(jmi=new JMenuItem("书签..."));inster.add(jmi=new JMenuItem("超连接"));jmb.add(format);format.add(jmi=new JMenuItem("字体(F)...")) ;jmi.setIcon(new ImageIcon(getClass().getResource("Image00011.gif"))) ;format.add(jmi=new JMenuItem("段落(P)...")) ;format.add(jmi=new JMenuItem("项目符号和编号(N)...")) ;format.add(jmi=new JMenuItem("边框和底纹(B)...")) ;format.addSeparator();format.add(jmi=new JMenuItem("分栏(C)...")) ;format.add(jmi=new JMenuItem("制表位(T)...")) ;format.add(jmi=new JMenuItem("首字下沉(D)...")) ;jmi.setEnabled(false) ;format.add(jmi=new JMenuItem("文字方向(X)...")) ;format.add(jmi=new JMenuItem("更改大小写(E)...")) ;format.addSeparator();format.add(jmi=new JMenuItem("调整宽度(I)...")) ;jmi.setEnabled(false) ;format.add(jm= new JMenu("中文版式(L)")) ;format.addSeparator();format.add(jm=new JMenu("背景(K)")) ;format.add(jmi=new JMenuItem("主题(H)...")) ;format.add(jm=new JMenu("框架(R)")) ;format.add(jmi=new JMenuItem("自动套用格式(A)...")) ;format.add(jmi=new JMenuItem("样式和格式(S)...")) ;format.add(jmi=new JMenuItem("显示格式(V)...")) ;format.addSeparator();format.add(jmi=new JMenuItem("对象(O)...")) ;jmi.setEnabled(false) ;jmb.add(Box.createHorizontalGlue());help.setMnemonic(KeyEvent.VK_H);jmb.add(help);// 使用边界布局北边添加菜单条add(jmb, BorderLayout.NORTH);// 使用边界布局中心添加工具条add(toolBar, BorderLayout.CENTER);// 使用边界布局南边添加封装滚动窗口add(jsp, BorderLayout.SOUTH);// 给文本区添加可以看的见的符号jta.getCaret().setVisible(true);// 符号的位置jta.setCaretPosition(0);}//**************************************************************************************// main 主函数protected static final class appCloseL extends WindowAdapter{public void windowClosing(WindowEvent e){System.exit(0);}}}有什么问题?谁都说JAVA是BY VALUE的,因为这是事实,thinking in java中有 楼主把这两个混淆了,在第一个Ass类中,得到参数值的不是c,而是类Content中是两个域(或称成员数据)a,b而在第二个类中,你实参赋值c="aaa";这在任何一门高级语言中都是不可以的.即使是传址也是不行的,在传址过程中你修改的是参数所指向的地址空间的值,而不是参数值. 第一句有误,楼主把这两个混淆了,在第一个Ass类中,你的值不是赋给参数c,而是赋给类Content中是两个域(或称成员数据)a,b而在第二个类中,你却要给实参赋值:c="aaa";这在任何一门高级语言中都是不可以的.即使是传址也是不行的,在传址过程中你修改的是参数所指向的地址空间的值,而不是参数值. wait方法的问题 大侠们,说说你们的意见 帮忙看下... !!!!!!!!求 java 文件多线程下载程序!!!!!!!! 请问:如何让线程在结束后又重新起动. 怎样通过FTP得到FTP目录下的文件列表,该目录下含有子目录。 一个关于包的编译问题。 奇怪的现象,大家一起讨论,无分送 大周末的还比抓来加班干活,烦死了,散分解闷 怎样在网页上调用客户机本地可执行文件? 那位好心人能告诉我 Java MIDP 是什么意思呀? interface(接口)实际如何应用?谁能给个简单实例参考参考
import java.awt.event.*;
import java.awt.print.*;
import java.awt.datatransfer.*;
import java.io.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.text.*;
import javax.swing.text.PlainDocument;
import com.jnotepad.inster.*;
import java.awt.event.ActionEvent;
import com.jnotepad.format.*;
import javax.swing.JMenu;
import com.jnotepad.view.*;
// 定义主类
public class JNotepad extends JPanel
{
// 定义一个菜单条
JMenuBar jmb = new JMenuBar();
//定义文件菜单
JMenu file = new JMenu("文件");
// 定义编译菜单
JMenu edit = new JMenu("编辑");
// 定义 帮助菜单
JMenu help = new JMenu("帮助");
// 定义 插入菜单
JMenu inster= new JMenu("插入");
// 定义格式 菜单
JMenu format = new JMenu("格式");
// 定义工具菜单
JMenu tools =new JMenu("工具");
// 定义表格菜单
JMenu form =new JMenu("表格");
// 定义窗口菜单
JMenu window = new JMenu("窗口");
// 定义 视图菜单
JMenu view = new JMenu("视图");
// 定义 工具条
JToolBar toolBar = new JToolBar();
// 定义菜单项
JMenuItem jmi;
JMenu jm;// 给菜单中添加拷贝菜单项
edit.add(jmi = new JMenuItem("拷贝", KeyEvent.VK_C));
//菜单项事件注册
jmi.addActionListener(new copyL());
// 给菜单中添加剪切菜单项
edit.add(jmi = new JMenuItem("剪切", KeyEvent.VK_T));
//菜单项事件注册
jmi.addActionListener(new cutL());
// 给菜单中添加粘贴菜单项
edit.add(jmi = new JMenuItem("粘贴", KeyEvent.VK_P));
//菜单项事件注册
jmi.addActionListener(new pasteL());
// 给菜单中添加删除菜单项
edit.add(jmi = new JMenuItem("删除", KeyEvent.VK_D));
//菜单项事件注册
jmi.addActionListener(new deleteL());
// 在菜单中添加一条分隔线
edit.addSeparator();
// 给菜单中添加全选菜单项
edit.add(jmi = new JMenuItem("全选", KeyEvent.VK_A));
//菜单项事件注册
jmi.addActionListener(new selectAllL());// 给菜单中添加帮助主题菜单项
help.add(jmi = new JMenuItem("帮助主题", KeyEvent.VK_A));
//菜单项事件注册
jmi.addActionListener(new aboutL());// 添加布局管理(使用边界布局)
setLayout(new BorderLayout());file.setMnemonic(KeyEvent.VK_F);
jmb.add(file);
edit.setMnemonic(KeyEvent.VK_E);
jmb.add(edit);
view.setMnemonic(KeyEvent.VK_V);
jmb.add(view);
view.add(jmi=new JMenuItem("普通(N)")) ;
view.add(jmi=new JMenuItem("Web版式(W)")) ;
jmi.setIcon(new ImageIcon(
getClass().getResource("Image7.gif"))) ;
view.add(jmi=new JMenuItem("页面")) ;
view.add(jmi=new JMenuItem("大纲")) ;
view.addSeparator();
view.add(jmi=new JMenuItem("任务窗格")) ;
view.add(jmi=new JMenuItem("工具栏")) ;
view.add(jmi=new JMenuItem("标尺")) ;
view.add(jmi=new JMenuItem("显示段落标记")) ;
view.add(jmi=new JMenuItem("网格线")) ;
view.addSeparator();
view.add(jmi=new JMenuItem("文档结构图")) ;
view.add(jmi=new JMenuItem("页眉和页脚")) ;
view.add(jmi=new JMenuItem("脚注")) ;
jmi.setEnabled(false) ;
view.add(jmi=new JMenuItem("标记")) ;
view.addSeparator();
view.add(jmi=new JMenuItem("显示全屏")) ;
view.add(jmi=new JMenuItem("显示比例...")) ;jmb.add(inster);
inster.add(jmi=new JMenuItem("分隔符……",'i'));
inster.add(jmi=new JMenuItem("页码……"));
inster.add(jmi=new JMenuItem("日期与时间"));
inster.add(jmi=new JMenuItem("域..."));
inster.add(jmi=new JMenuItem("符号..."));
inster.add(jmi=new JMenuItem("批注"));
inster.addSeparator();
inster.add(jmi=new JMenuItem("数字..."));
inster.add(jmi=new JMenuItem("引用"));
inster.add(jmi=new JMenuItem("Web组件"));
jmi.setEnabled(false) ;
inster.addSeparator();
inster.add(jm=new JMenu("图片"));
jm.add(jmi=new JMenuItem("剪贴画"));
jm.add(jmi=new JMenuItem("来自文件"));
jm.add(jmi=new JMenuItem("自选图形"));
jm.add(jmi=new JMenuItem("艺术字"));
jm.add(jmi=new JMenuItem("图表"));
inster.add(jmi=new JMenuItem("图示(G)..."));
inster.add(jm=new JMenu("文本框"));
jm.add(jmi=new JMenuItem("横排"));
jm.add(jmi=new JMenuItem("竖排"));
inster.add(jmi=new JMenuItem("文件..."));
inster.add(jmi=new JMenuItem("对象..."));
inster.add(jmi=new JMenuItem("书签..."));
inster.add(jmi=new JMenuItem("超连接"));jmb.add(format);
format.add(jmi=new JMenuItem("字体(F)...")) ;
jmi.setIcon(new ImageIcon(
getClass().getResource("Image00011.gif"))) ;
format.add(jmi=new JMenuItem("段落(P)...")) ;format.add(jmi=new JMenuItem("项目符号和编号(N)...")) ;
format.add(jmi=new JMenuItem("边框和底纹(B)...")) ;
format.addSeparator();
format.add(jmi=new JMenuItem("分栏(C)...")) ;
format.add(jmi=new JMenuItem("制表位(T)...")) ;format.add(jmi=new JMenuItem("首字下沉(D)...")) ;
jmi.setEnabled(false) ;
format.add(jmi=new JMenuItem("文字方向(X)...")) ;
format.add(jmi=new JMenuItem("更改大小写(E)...")) ;format.addSeparator();
format.add(jmi=new JMenuItem("调整宽度(I)...")) ;
jmi.setEnabled(false) ;
format.add(jm= new JMenu("中文版式(L)")) ;
format.addSeparator();
format.add(jm=new JMenu("背景(K)")) ;
format.add(jmi=new JMenuItem("主题(H)...")) ;
format.add(jm=new JMenu("框架(R)")) ;
format.add(jmi=new JMenuItem("自动套用格式(A)...")) ;
format.add(jmi=new JMenuItem("样式和格式(S)...")) ;
format.add(jmi=new JMenuItem("显示格式(V)...")) ;
format.addSeparator();
format.add(jmi=new JMenuItem("对象(O)...")) ;
jmi.setEnabled(false) ;
jmb.add(Box.createHorizontalGlue());
help.setMnemonic(KeyEvent.VK_H);
jmb.add(help);// 使用边界布局北边添加菜单条
add(jmb, BorderLayout.NORTH);
// 使用边界布局中心添加工具条
add(toolBar, BorderLayout.CENTER);
// 使用边界布局南边添加封装滚动窗口
add(jsp, BorderLayout.SOUTH);
// 给文本区添加可以看的见的符号
jta.getCaret().setVisible(true);
// 符号的位置
jta.setCaretPosition(0);
}
//**************************************************************************************
// main 主函数protected static final class appCloseL extends WindowAdapter
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
}
}
有什么问题?
谁都说JAVA是BY VALUE的,因为这是事实,thinking in java中有
中是两个域(或称成员数据)a,b
而在第二个类中,你实参赋值c="aaa";这在任何一门高级语言中都是不可以的.
即使是传址也是不行的,在传址过程中你修改的是参数所指向的地址空间的值,
而不是参数值.
楼主把这两个混淆了,在第一个Ass类中,你的值不是赋给参数c,而是赋给类Content
中是两个域(或称成员数据)a,b
而在第二个类中,你却要给实参赋值:c="aaa";这在任何一门高级语言中都是不可以的.
即使是传址也是不行的,在传址过程中你修改的是参数所指向的地址空间的值,
而不是参数值.