静态方法中不能直接访问同一类中的非静态成员,而必须先创建对象,再通过对象访问成员。谁能例子???

 我来答
y41699060
2012-03-25
知道答主
回答量:3
采纳率:0%
帮助的人:5.6万
展开全部
你的问题好蛋疼 你想用静态方法访问同类中得非静态成员 这根本不可能做到 首先静态方法访问不了非静态成员 这你是知道的 但是实例化出对象后 对象就无法调用静态方法了
蓝色_灵魂
推荐于2018-04-20 · TA获得超过680个赞
知道小有建树答主
回答量:1127
采纳率:0%
帮助的人:556万
展开全部
public class Ex
{
int i =123;

public static void main(String args[])
{
int temp = 0;
//temp = i;
//System.out.println(temp);

Ex e = new Ex();
temp = e.i;
System.out.println(temp);

}
}

注释掉的就是不能直接访问的例子
追问
不是  我想要一个  类的成员函数是静态的方法 怎么访问同时这个类中定义的非静态成员函数和成员变量
追答
人家方法里的局部变量只作用在那个方法里,你想访问干嘛?真想拿到他的数值你定义个静态去成员变量,在那个方法里把局部变量赋给成员变量吧,不过要new对象
public class Ex
{
int i =123;
static int Temp;

public static void A()
{
System.out.println(Temp);
}

public int B()
{
int x = 100;

return x;
}

public static void main(String args[])
{
Ex e = new Ex();
Temp = e.B();
e.A();
}
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
update_all
2011-06-11 · TA获得超过193个赞
知道小有建树答主
回答量:242
采纳率:0%
帮助的人:170万
展开全部
定义一个User类,类中有name属性,age属性,say()方法
如果你要再main函数中使用say()方法
你必须 User user = new User() ;
user.name="tom" ;
user.say() ;
追问
我说的不是静态的Main()   是类里面定义的静态方法 如何访问到类里定义的其他非静态的方法和成员变量
追答
静态方法,只能访问静态的属性...
静态方法中访问非静态方法只能通过实例化当前类,用当前类调用该非晶态方法.

public class Test {
static String name ;
public static void demo1(){
name = "a" ; //只能够调用静态属性
Test test = new Test () ;
test.demo2() ; //调用非静态方法,必须实例化当前类,使用类.方法名
}
public void demo2(){
this.demo3();//在非静态类中,可以直接调用静态类.
Test.demo3() ; //类名.方法名
System.out.println("demo2");
}
public static void demo3(){
System.out.println("demo3");
}

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
掌善秋梵iY
2020-11-27
知道答主
回答量:1
采纳率:0%
帮助的人:550
展开全部
在静态方法中用非静态成员的类名创建一个对象,再用对象调用这个非静态成员。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式