java 传参的时候,有常量引用吗

问题描述

c++里可以成const&st,防止引用参数被修改,在java里应该怎么写?

解决方案

解决方案二:
你是指函数参数为常量吗?如果是,用finalpublicvoidtest(finalinta){}
解决方案三:
Java传递参数,如果是intString,不加final也没事。
解决方案四:
引用1楼enzo1986的回复:

你是指函数参数为常量吗?如果是,用finalpublicvoidtest(finalinta){}

你好。publicstaticvoidchange(finalningn){n.i=1;}我声明了final还是可以改变参数。
解决方案五:
引用2楼healer_kx的回复:

Java传递参数,如果是intString,不加final也没事。

你好。publicstaticvoidchange(finalningn){n.i=1;}我声明了final还是可以改变参数。
解决方案六:
引用4楼ningweidong的回复:

引用2楼healer_kx的回复:Java传递参数,如果是intString,不加final也没事。你好。publicstaticvoidchange(finalningn){n.i=1;}我声明了final还是可以改变参数。

这种语境下的常量是指,ningr的引用n不可以再指向其它的实例.但改变n实例内部的属性是没有问题的.如果你这样写就编不过去啦....ublicstaticvoidchange(finalningn){nings=null;n=s;}
解决方案七:
c++里可以成const&st,防止引用参数被修改不止是防止引用被修,还有几个更重要的原因1.速度2.可以传递临时参数(非常重要,尤其是在Qt中到处都是)3.只有非const方法能被调用4.不能修对象的属性值你好。publicstaticvoidchange(finalningn){n.i=1;}我声明了final还是可以改变参数。Java里只是引用本身不能被修,但是引用的属性值是可以被修改的。相当于C++的指针常量,而非常量指针,即是int*constpointer
解决方案八:
引用6楼inhibitory的回复:

c++里可以成const&st,防止引用参数被修改不止是防止引用被修,还有几个更重要的原因1.速度2.可以传递临时参数(非常重要,尤其是在Qt中到处都是)3.只有非const方法能被调用4.不能修对象的属性值你好。publicstaticvoidchange(finalningn){n.i=1;}我声明了final还是可以……

你好。如果我想实现常量指针的功能,就是不请允许修改引用的属性值,应该怎么做?
解决方案九:
你好,我想只读取参数的值,而不准修改它的属性值,应该怎么做?引用5楼ganhaitian的回复:

引用4楼ningweidong的回复:引用2楼healer_kx的回复:Java传递参数,如果是intString,不加final也没事。你好。publicstaticvoidchange(finalningn){n.i=1;}我声明了final还是可以改变参数。这种语境下的常量是指,ningr的引用n不可以再指……

解决方案十:
参数前面加上final修饰符就OK
解决方案十一:
引用7楼ningweidong的回复:

引用6楼inhibitory的回复:c++里可以成const&st,防止引用参数被修改不止是防止引用被修,还有几个更重要的原因1.速度2.可以传递临时参数(非常重要,尤其是在Qt中到处都是)3.只有非const方法能被调用4.不能修对象的属性值你好。publicstaticvoidchange(finalningn……

Java里做不到
解决方案十二:
你好。我觉得常量指针的功能很重要啊,java没办法实现吗?引用10楼inhibitory的回复:

引用7楼ningweidong的回复:引用6楼inhibitory的回复:c++里可以成const&st,防止引用参数被修改不止是防止引用被修,还有几个更重要的原因1.速度2.可以传递临时参数(非常重要,尤其是在Qt中到处都是)3.只有非const方法能被调用4.不能修对象的属性值你好。publics……

解决方案十三:
写一个子类,涉及到修改属性值的方法空实现或者抛异常
解决方案十四:
java里面好像都是传值的
解决方案十五:
该回复于2011-05-09 09:59:24被版主删除

时间: 2024-09-19 20:41:27

java 传参的时候,有常量引用吗的相关文章

Java传参方式-值传递还是引用传递

参数是按值而不是按引用传递的说明 Java 应用程序有且仅有的一种参数传递机制,即按值传递.写它是为了揭穿普遍存在的一种神话,即认为 Java 应用程序按引用传递参数,以避免因依赖"按引用传递"这一行为而导致的常见编程错误. 对此节选的某些反馈意见认为,我把这一问题搞糊涂了,或者将它完全搞错了.许多不同意我的读者用 C++ 语言作为例子.因此,在此栏目中我将使用 C++ 和 Java 应用程序进一步阐明一些事实. 要点 读完所有的评论以后,问题终于明白了,考试吧提示: 至少在一个主要问

java 传参 编程-【Java初学者求助】,谢谢main方法里面传参的问题

问题描述 [Java初学者求助],谢谢main方法里面传参的问题 刚开始接触Java时间不久,谢谢各位帮忙.我想要得到的结果是:输入身高和体重,然后算出来exp是否合理,谢谢,package forth; import java.io.*; public class Person { float weight; float height; String check(){ float exp = weight/(height*height); if(exp<18) return ""

使用java传参调用exe并且获取程序进度和返回结果的一种方法

文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 在某个项目中需要考虑使用java后台调用由C#编写的切图程序(exe),并且前端能够获取到切图的进度和相关描述信息. 2.解决思路 a.首先改造切图程序为接受参数从Main函数传递. b.编写java后台传参调用exe的函数. c.解决通信问题. 3.具体实现 3.1改写C#窗体程序   C#中的入口程序为Main函数,其中Main函数默认是没有参数的,如果添

对Python和Go的函数传参研究

传参一直是语言中有点纠结的东西.一提到这个,总会有人说,需要区分传值,传递引用,还有传递指针什么的.而且,貌似不同的语言对此也有不同的实现. 我自己也对这个有点搞混了,所以需要实验一下. 写在开头: 我常用的几个语言是,C++,Go语言,python这几种.三个语言中,只有C++有引用,而Python是没有指针的.参数传递主要就两类,传值和传递引用. 本文只写Python和Go语言,C++太复杂了,需要专门研究. 试验的主要分为几种类型,分别为: 单一的变量类型,比如int,float这种基本类

jsp传参有几种方式?

问题描述 如题. 解决方案 解决方案二:一般跟在url后面或者用post传啊解决方案三:url后面或者提交整个表单来传解决方案四:1.JavaScript传参2."?"传参3.session传参4.JavaBean传参这个是楼主要的答案吗?解决方案五:二种post和get解决方案六:是http这种吗?doget和dopost还是一般的getParameter和getAttribute解决方案七:1.JavaScript传参2."?"传参3.session传参4.Ja

servlet-java 传参失败 空指针异常

问题描述 java 传参失败 空指针异常 我在servlet里调用dao层方法 自定义了一个name变量做测试 name在整个servlet可以输出 但在dao层无法输出 解决方案 空指针异常最好的解决办法就是打断点,debug去看,没有什么捷径可走. 解决方案二: 打断点的方法可以参考百度经验上的如何打断点和调试: 其次,在启动项目的时候不要直接start启动,而是选择debug模式启动: 断点应该尽量打得精确,比如fin方法的第53行,然后逐行运行(F6).

Go语言的传参和传引用[转]

传参和传引用的问题 很多非官方的文档和教材(包括一些已经出版的图书), 对Go语言的传参和引用的讲解  都有很多问题. 导致众多Go语言新手对Go的函数参数传参有很多误解. 而传参和传引用是编程语言的根本问题, 如果这个问题理解错误可能会导致很多问题. 传slice不是传引用! 首先, Go语言的函数调用参数全部是传值的, 包括 slice/map/chan 在内所有类型, 没有传引用的说法. 具体请看Go语言的规范: After they are evaluated, the paramete

Java中数组的创建与传参方法(学习小结)_java

(一)数组的创建 数组的创建包括两部分:数组的申明与分配内存空间. int score[]=null; //申明一维数组 score=new int[3]; //分配长度为3的空间 数组的申明还有另外一种方式: int[] score=null; //把中括号写在数组名前面 通常,在写代码时,为了方便,我们将两行合并为一行: int score[]=new int score[3]; //将数组申明与分配内存写在一行 (二)传递参数 由于初学java,这里只讨论值传递,不考虑地址传递.主要有3点

java构造器,与方法怎么传参,这样不对吗?为什么结果是0

问题描述 java构造器,与方法怎么传参,这样不对吗?为什么结果是0 public class Area { int width; int length; public static void main(String[] args) { Area ar=new Area(2,3); int areas=ar.area(); System.out.println(areas); } public int area(){ return this.width*this.length; } public