JAVA中的对象只能调用成员变量和方法吗?

JAVA中的对象只能调用成员变量和方法吗?
Java中的对象可以调用局部变量吗?
(新手小白)

5个回答

局部变量是方法里定义的,在对应的成员方法内可以访问,出了方法不可以。

这跟作用域有关,比如你在某个花括号{}里定义了一个变量,就可以在这个花括号里的任何地方用它,就是再嵌套几个{}也行,但要是出了这个花括号,抱歉,这个变量,我不认识=.=

这个和作用域有直接关系,成员变量也是局部变量,不同的是它的作用域是相对于整个类而言的;而方法中的成员变量也是局部变量,但是由于 作用域的关系,被限制在这个方法体内,这个局部变量是相对于这个方法体而言的。
因此,Java对象能不能调用局部变量,需要看这个局部变量的作用域范围大小(简单来说就是这个变量直接在谁的{}中,和谁有直接关系)。

对象可以调公开的方法和属性(不过按照封装原则,一般对象不会直接调用属性),公开的是用public修饰的,或者子类调用父类protected修饰的变量或方法。如果不用修饰符则表示是同一个包下面可以调用的。而private修饰的属性和方法无法通过对象直接调用,但可以使用反射进行调用。

公开的就能掉,不公开的自己内部玩

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
JAVA同类中的方法可以调用本类的成员变量吗?
事实上是可以的,但是我的一个程序出了点小问题,同类的方法访问不了该类的成员变量,贴出来给大家看一下:rnimport java.util.Scanner;rnrn public class test rn public double a;rn public double b;rn public double c;rn public double delta;rnrn public void getvalue() rn Scanner sc = new Scanner(System.in);rn System.out.print("输入a的值:");rn double a = sc.nextDouble();rnrn if (a==0) rn System.out.print("请重新输入a的值,a不等于0:");rn a = sc.nextDouble();rn rn rn System.out.print("输入b的值:");rn double b = sc.nextDouble();rn System.out.print("输入c的值:");rn double c = sc.nextDouble();rn panduan();rn rn rn rn public void panduan() rn double x1, x2;rn delta = b * b - 4 * a * c;rn System.out.println(delta);rn if (delta > 0) rn System.out.println("方程有两个不等实根");rn x1 = -b + Math.sqrt(delta) / (2 * a);rn x2 = -b - Math.sqrt(delta) / (2 * a);rn System.out.println(x1);rn System.out.println(x2);rn else if (delta == 0) rnrn System.out.println("方程有两个相等实根");rn x1 = -b / (2 * a);rn System.out.print(x1);rn else if (delta < 0) rn System.out.println("方程有两个虚根");rn x1 = -b + Math.sqrt(-delta) / (2 * a);rn x2 = -b - Math.sqrt(-delta) / (2 * a);rn System.out.println(x1);rn System.out.println(x2);rn rnrn rn rn//主类rnpublic class TestMain rnrn public static void main(String[] args) rn test test1=new test();rn test1.getvalue();rn rnrn
要发送的数据只能是套接字中的成员变量对象吗?
CSocket m_socket;rn//...rnvoid CXXX::OnOK()rnrn BOOL bCreated = m_Socket.Create();rn if(bcreated)rn rn //Connect...rn //如果连接上rn CSocketFile socketfile(&m_socket);rn CArchive arSend(socketfile,...);rn ar << ????????????????????????;//这个地方传的东西可以是任何变量???rn //还是只能自己派生一个CSocket类,rn//将要传的数据放在派生类中? 还有这样直接就可以传了吗?还要重载Serialize()rn//不? 不太理解Serialize()和CArchive工作方式,尤其是和CSocketFile一起... rn OnOk();rn
通过Java反射机制获取对象、方法和成员变量
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦: Markdown和扩展Markdown简洁的语法 代码块高亮 图片链接和图片上传 LaTex数学公式 UML序列图和流程图 离线写博客 导入导出Markdown文件 丰富的快捷键 快捷键 加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl
java中成员变量和方法的隐藏
对于成员变量来说,当子类本身具有与继承自父类的成员变量名称相同的成员变量时,便构成了成员变量的隐藏。其含义是,在子类中直接调用该成员变量时,将调用的是子类中本身具有的成员变量,而不是父类继承的成员变量。        子类的自身方法中,若与继承过来的方法具有相同的方法名,便构成了方法的重写(或者说覆盖)。重写的主要特点是能够定义各子类的特有行为。               若用父类
java 成员变量在方法中的值
[code=java]rnclass Parent rn int x = 10;rn public Parent() rn add(2);rn rn void add(int j) rn this.x += j;rn rnrnclass Child extends Parent rn int x = 9;rnrn void add(int j) rn System.out.println("==+++=="+x);//为什么这里输出的x是0rn x += j;rn System.out.println("===="+x)rn rn public Child()rn super();rn System.out.println(">>>>>>"+x);rn rnrnpublic class Test rn public static void main(String args[]) rn Parent p = new Child();rn System.out.println(p.x);//为什么结果是10,不是说多态父类引用指向子类对象吗?rnrn rn rn[/code]rn[color=#800000]问题看上面的注释[/color]
java 多态环境下对 方法和成员变量的调用
1.多态环境下对成员方法的调用 class  Animal{            void show() {              System.out.println(“Anmial");           } } class Cat  extends Animal{               void show() {      
关于C++与java中,对象调用私有成员变量的问题
现在写程序都是用java写的,突然用C++,发现居然不能用对象直接调用私有成员变量,就很奇怪,为啥在JAVA中可以直接调用rnpublic class BookSale rn private String bookName;rn private int bookNum;rn private double bookPrice;rn rn public BookSale(String bookname ) rn this.bookName=bookname;rn rn rn rn public static void main(String []argv)rn String s="ssss";rn BookSale bs=new BookSale(s);rn System.out.println(bs.bookName);rn rn rnrnrnrnC++中的代码:rn string s="ssss";rn BookSale *bs=new BookSale(s);rn cout<bookName<
java中如何调用javascript对象与方法
JS1:rn[code=javascript]rnvar o = rn f : function()rn return "abcdf";rn rnrn// 在JS中这样可以调用rno.f();rn[/code]rnrnJS2:rn[code=javascript]rnfunction f()rnreturn "abcdf";rnrn[/code]rnrn[b]通过JAVA调用JAVASCRIPT代码,JS2可以调用成功,请问JS2中的方法如何调用?JAVA里不支持调用JAVASCRIPT对象中的方法吗?[/b]rn我的代码:rn[code=java]rnString jsFileName ="../js/formatter.js";rn /*rn * 读取js文件rn */rn FileReader reader;rn String pass = "";rn try rn reader = new FileReader(jsFileName);rn engine.eval(reader);rn if (engine instanceof Invocable) rn Invocable invoke = (Invocable) engine;rn pass = invoke.invokeFunction("o.f").toString();rn return pass;rnrn rn reader.close();rn catch (Exception e) rn e.printStackTrace();rn rn[/code]rn
jni中调用java某个对象的方法
分为四步走,如果是调用的是与native方法同一个类里的方法,则可以跳过第三步,直接用jni的object参数就行 主要介绍一下env-&gt;GetMethodID的最后一个参数吧,表示签名,规则为:(参数签名)+返回值签名 示例 Java层方法 ...
类、对象、成员变量和方法及实例化对象
讲解Andrioid移动开发必须具备的基础知识。
JAVA的方法与成员变量
1>成员变量和局部变量的区别 1)在代码中的位置不同: 局部变量:在类中的方法被定义或者声明 成员变量: 在类中方法外 2)在内存中的位置不同: 局部变量: 栈内存 成员变量: 堆内存 3)生命周期不同: 局部变量: 随着方法的调用而存在,随着方法的调用完毕而消失 成员变量: 随着对象的建立而存在,随着对象的消失而消失 4)默认值不同: 局部变量: 没有默认值 成员变量:
ognl调用action成员变量类中的方法
action类中有一个成员变量deals,deals中存放着所有的交易 rn[code=Java]rnpackage com.actions;rnrnimport java.util.List;rnrnimport javax.annotation.Resource;rnrnimport com.dao.interfaceImp.DealDaoImp;rnimport com.xu.model.Deal;rnrnpublic class ShowAllUnfinishedDeals rn private DealDaoImp ddi;rn private List deals;rn public List getDeals() rn return deals;rn rn public void setDeals(List deals) rn this.deals = deals;rn rn public DealDaoImp getDdi() rn return ddi;rn rn @Resource(name="DealDaoImp")rn public void setDdi(DealDaoImp ddi) rn this.ddi = ddi;rn rn rn public String execute ()rn tryrn deals = ddi.findUnfinishedDeal();rn catch (Exception e)rn e.printStackTrace();rn return "input";rn rn return "success";rn rnrn[/code]rnDeal中的成员变量如下rn[code=Java]rnimport java.util.Date;rnpublic class Deal rn //主键id号rn private int id;rn //交易发起日期rn private Date dealDate;rn //交易金额rn private double dealSum;rn //当前状态,1表示发出但是还没有通过审核,2表示通过审核,3表示钱已经发出 4表示发出行已经收到款项 5表示拒绝掉款rn private int currentSituation;rn //交易发起人rn private BasicUser dealSponsor;rn //交易支票号码rn private String checqueNumber;rn //交易回复rn private Response response;rn //交易类型1为现金调拨 0为现金上缴rn private Boolean dealType;rn //约定交易日期rn private Date contractDate;rn //交易留言rn private String leaveMessage;rn public String getLeaveMessage() rn return leaveMessage;rn rn public void setLeaveMessage(String leaveMessage) rn this.leaveMessage = leaveMessage;rn rn public Date getContractDate() rn return contractDate;rn rn public void setContractDate(Date contractDate) rn this.contractDate = contractDate;rn rn public void setCurrentSituation(int currentSituation) rn this.currentSituation = currentSituation;rn rn public Boolean getDealType() rn return dealType;rn rn public void setDealType(Boolean dealType) rn this.dealType = dealType;rn rn public int getCurrentSituation() rn return currentSituation;rn rn public int getId() rn return id;rn rn public void setId(int id) rn this.id = id;rn rn public Date getDealDate() rn return dealDate;rn rn public void setDealDate(Date dealDate) rn this.dealDate = dealDate;rn rn public double getDealSum() rn return dealSum;rn rn public void setDealSum(double dealSum) rn this.dealSum = dealSum;rn rn public BasicUser getDealSponsor() rn return dealSponsor;rn rn public void setDealSponsor(BasicUser dealSponsor) rn this.dealSponsor = dealSponsor;rn rn public String getChecqueNumber() rn return checqueNumber;rn rn public void setChecqueNumber(String checqueNumber) rn this.checqueNumber = checqueNumber;rn rn public Response getResponse() rn return response;rn rn public void setResponse(Response response) rn this.response = response;rn rnrn[/code]rn现在问题是我想在前台页面将Deals集合中的所有Deal展现出来其中要展现Deal中的dealSponsor,这是一个类,其中的成员变量如下rn[code=Java]rnpackage com.xu.model;rnrnimport java.util.HashSet;rnimport java.util.Set;rnrnpublic class BasicUser rn //主键id号rn private int id;rn //登录用户名,最好是行号rn private String username;rn //登录密码,用md5加密rn private String password;rn //支行名称rn private String branchBankName;rn //用户所拥有的全部交易rn private Set deals;rn @Overridern public boolean equals(Object object) rn BasicUser bu = (BasicUser)object;rn if(bu.branchBankName==this.branchBankName) return true;rn return false;rn rn public Set getDeals() rn return deals;rn rn public void setDeals(Set deals) rn this.deals = deals;rn rn public String getBranchBankName() rn return branchBankName;rn rn public void setBranchBankName(String branchBankName) rn this.branchBankName = branchBankName;rn rn public int getId() rn return id;rn rn public void setId(int id) rn this.id = id;rn rn public String getUsername() rn return username;rn rn public void setUsername(String username) rn this.username = username;rn rn public String getPassword() rn return password;rn rn public void setPassword(String password) rn this.password = password;rn rnrn[/code]rn我想在前台中展示dealSponsor中getBranchBankName方法获得的字符串,请问ognl表达式该怎么写,就是中value=该怎么写?
java 成员变量与方法 习题
1、写一个判断素数的过程。以整数作为参数,若为素数则输出True,否则输出False 2、 写两个函数,分别求两个数的最大公约数和最小公倍数 3、 编写一个过程,用来计算并输出: 4、 Fibonacci数列的第一项是0,第二项是1,以后各项都是前两项的和,编写方法求第N项的值
Java JNI 调用对象的方法
/* * Class: demo_Demo16 * Method: f * Signature: (J)V */ JNIEXPORT void JNICALL Java_demo_Demo16_f__J (JNIEnv *env, jobject obj, jlong p){ jclass cls = env-&gt;GetObjectClass(obj); ...
继承关系中调用成员变量
package cn.dali.code14; /*在父子继承关系中,调用成员变量有两种方法 * 1.直接调用 * 2.间接调用 通过调用方法调用 * * 当子类与父类成员变量重名的时候遵循以下规则 * 1.直接调用:参考程序line 11-14 * 当直接调用时,创建对象的时候用的是哪个类,就是用哪个类中的变量。 * 2.间接调用: * 参考程序line ...
java中==调用的是equals方法吗。
equals等于==?是语法糖?
调用基类成员变量的成员变量...
[code=C/C++]rnclass CBasernrnpublic:rn CBase() m_p = new CBase; rn ~CBase() rnrnprotected:rn CBase* m_p;rn;rnrnclass CTest : public CBasernrnpublic:rn CTest() rn ~CTest() rnrn void Test()rn rn CBase* p = m_p->m_p; // 关键点rn rn;rn[/code]rn上面"关键点"编译会包错,是因为this类型与m_p类型不同导致的么???rn如果强制转换可以么?rn一般都这样做是吧?
抽象类中的方法,成员变量?
public abstract class BasetableFactory rn private static final String classname = "com.bwm.database.DbBasetableFactory";rn private static BasetableFactory factory;rnrn public static BasetableFactory getInstance() rn if (factory == null) rn try rn Class c = Class.forName(classname);rn factory = (BasetableFactory) c.newInstance();rn catch (ClassNotFoundException ex) rn ex.printStackTrace();rn catch (IllegalAccessException ex1) rn ex1.printStackTrace();rn catch (InstantiationException ex1) rn ex1.printStackTrace();rn rn rn return new BasetableFactoryProxy(factory);rn rn......rnprivate static BasetableFactory factory; 这个是定义了什么成员变量?rnpublic static BasetableFactory getInstance()rnreturn new BasetableFactoryProxy(factory); 这里是实例一个对象吗? return new .... 是返回一个对象吗?rnrn新手~
java 中类的静态方法怎么调用成员变量
java 中类的静态方法怎么调用成员变量 rn 除了把成员加static修饰 还有别的办法吗 总是在这纠结啦 能说说他们的原理吗 谢谢啦!
JAVA中 成员变量和和实例变量一样吗?
public class A{String id; //实例变量private String Tel; //实例变量private int size; //实例变量private static String depart; //类变量final String design="样式"; //常量}其中实例变量、类变量、常量都是属于成员变量的,成员变量又被称为全局变量,成员变量的范围比实例变量更宽泛
Java类中的成员变量的赋值方法
1.在类体中定义类成员变量时,直接对成员变量进行赋值 2.通过构造方法赋值 3.使用setter方法赋值。 这三种方法最后达成的效果是一样的,都是对对象进行的赋值。以下对其做一下简单的分析: 1.在类体中定义类成员变量时,直接对成员变量进行赋值 在C++中类是完全抽象的,不可以在类中对变量直接进行初始化。在 Java中可以直接对类对象直接赋值了。 使用这种方法,在定义变量的同时直接对类
java中interface定义的成员变量和方法
在interface里面的成员变量都是public static final 的。所有你可以这样写:             public static final int i=10;也可以这样写 int i =10(省略了public  static final)            我们都知道Java不支持多继承,但是可以支持多实现。假设有两个接口A和B,而类C实现了这两个接口。此时接口A和...
Java中成员变量的隐藏和方法的重写
这篇文章咱谈论一下Java面向对象概念中--成员变量的隐藏。如有什么不对或者不合适的地方,还请各位同行斧正。我们先看一段特别特别简单的代码:public class ClazzTest { public static void main(String[] args) { Son s1 = new Son(); System.out.println(&quot; s1....
link中能否闭包调用成员变量?还是只能调用函数变量?
link中能否闭包调用成员变量?还是只能调用函数变量? n n n n n
父类对象可以调用子类的方法吗?
例如:我有个[color=#0000FF]管理类[/color],下面有很多[color=#0000FF]子类继承管理类[/color],想用管理类的对象调用[color=#FF0000]子类特有的方法[/color],而且[color=#FF0000]每个子类的方法名和参数类型个数都是特有的[/color],管理类对象可以调用他们吗?
计算成员变量在对象中的偏移
class CFoo{ public: int iBar1; int iBar2; int iBar3; }; void main() { CFoo* pClass = NULL;//此处不需要new一个CFoo对象实例(只读不写) int iFldKey1 = (long)(&amp;amp;(pClass-&amp;gt;iBar1)) - (long)(...
java中方法的调用
1.什么是方法 方法就是完成特定功能的代码块。 在很多语言中都有函数的定义,但是在咱们JAVA语言中,我们将其称之为方法。 2.方法定义在类中,方法跟方法是平级关系,不能嵌套定义。 3.方法不调用不执行。 4.void 无明确反回值类型。 5.如果一个方法一旦明确了返回值类型,必须由 return 带回一个 与明确了类型一致的结果 6.方法的格式详细说明。 修饰符 目前使用 public...
保存对象中的某些成员变量
对象Class1 和Class2rnclass Class1rn Hashtable H=new Hashtable();rn Plublic Class1(string s)rn H.Add("A",s);rn rnrnrnrnclass Class2rn for(int i=0;i<3;i++)rn Class1 c= new Class1(""+i);rn rn 。。。rn 这里,如何取得i==0时由Class1所创建的Hashtable的值?rn 也就是,Class1中的 H 在第一次初始化后便不会被销毁,直到整个程序退出为止。 rn Class1中的H的值不允许赋给其他变量rn
【类反射】类的调用(调用类中的成员:成员变量、方法、构造方法)
★ 构造类对象使用构造器新建对象。根据指定的参数类型找到相应的构造函数,传入相应参数调用执行,以创建一个新的对象实例。 代码演示:package cn.hncu.reflect.test;import java.lang.reflect.Constructor; import java.lang.reflect.Field; import java.lang.reflect.InvocationTa
Java类和对象、方法、成员变量和局部变量
参考资料 [1]. 疯狂Java讲义(第三版) 李刚 类和对象 定义类 类(class)和对象(object,也被称为实例,instanceof),其中类是某一批对象的抽象,可以把类理解成某种观念,对象才是一个具体的实体。 普通类或抽象类的语法如下: [public] [final] [abstract] class 类名 [extends 被继承的类名,] implem
java接口成员变量和方法的特点
interface animal { int a = 1; int eat(); }动物接口里面有成员变量a和方法eat();,虽然没有修饰符修饰但是接口都有默认修饰符,即上面的接口同下面的接口interface animal { public static final int a = 1; public int eat(); }所以接口的成员变量都是静态的不可改变的
Java反射——如何通过Java中的反射调用对象的方法?
  一.Java反射拿到调用对象的方法 1.通过Class.forName(“包名+方法的类名”)拿到方法的对象; 如:Class&amp;lt;?&amp;gt; clazz = Class.forName(&quot;ReflectionTest&quot;);         也可以通过实例,获取方法的对象类,         如:String str = &quot;test , reflection&quot;;         ...
STL中队列QUEUE中元素改变大小(resize)可能出现的问题!
待续……
CDC类的对象能做成员变量吗?
CDC类和CClientDC类等的对象需要CWnd类的对象的指针作为参数(没有无参数的构造函数),那么这两个类是不是就不能作为类的成员变量了?
Java中对象调用机制
Java属于面向对象的编程语言,这也给大家造成了一定的误区,在此说明 java对对象采用的是值传递而非对象传递 也就是说,以对象作为参数的方法,只能修改对象的参数即内容,无法修改对象存储的位置 举个例子 public class SwapObject { private static Person person1; private static Person person2;
Java中的成员变量和局部变量
成员变量:是指在类中定义的变量。 局部变量:是指在方法中定义的变量。 成员变量可以细分为类变量和实例变量 类变量:有static修饰。随着该类的准备阶段开始存在,直到系统完全销毁这个类,类变量的作用域与这个类的生存范围相同。 实例变量:没有static修饰。从该类的实例被创建开始存在,知道系统完全销毁这个实例。示例变量的作用域与对应实例的生存范围相同。 class Car{ ...
java 继承中的 成员变量
java 继承 成员变量
java中的局部变量与成员变量
1.成员变量是是在类中定义的,而局部变量是在方法中定义的; 2.java会给成员变量赋初始值,但不会给局部变量赋初始值 3.局部变量的优先级高 4.无参的构造方法可以创建对象,有参的构造方法也可以创建对象 Telphone phone=new Telphone(); Telphone phone1=new Telphone(5.0f,4.5f,3.4f); 还可以判断传值是否安全
java中成员变量的作用域
public表明该成员变量或者方法对所有类或者对象都是可见的,所有类或者对象都可以直接访问。 private表明该成员变量或者方法是私有的,只有当前类对其具有访问权限,除此之外的类或者对象都没有访问权限。 protected表明该成员变量或者方法只对自己及其子类可见,即自己和子类具有访问权限。除此之外的都没有访问权限。 dufault表明该成员变量或者方法对自己或者与其位于同一包内的类可见。...
Java中的成员变量
Java中的变量的详细介绍 。介绍成员变量和局部变量的区别。成员变量中的实例变量和静态变量的区变。
相关热词 c#检测非法字符 c#双屏截图 c#中怎么关闭线程 c# 显示服务器上的图片 api嵌入窗口 c# c# 控制网页 c# encrypt c#微信网页版登录 c# login 居中 c# 考试软件