注册 登录
编程论坛 JAVA论坛

成员方法与构造方法疑问

Dsky 发布于 2016-06-16 10:38, 2986 次点击
public class Test{
public Test(){} //构造函数
public Test(int i)(){} //构造函数
public void test(){}//成员方法
public int test2(){}//成员方法!
}

public static void main(string [] args){
  Test t1 = new Test();//调用构造方法
  Test t2 = new Test(5);//调用构造方法
  ********************;//调用成员方法(这个怎么调。。。)
}
10 回复
#2
Dsky2016-06-16 10:39
新手自学,请大神解惑。。。
#3
格格不入fl2016-06-16 12:32
调用成员方法    t1.test   t1.test2   t2.test  t2.test2
#4
sadhfjksba2016-06-16 12:43
以下是引用格格不入fl在2016-6-16 12:32:19的发言:

调用成员方法    t1.test   t1.test2   t2.test  t2.test2

对的
#5
zzjvslove2016-06-16 14:53
应该是  
如果调用test的话,则如下
t1.test() ;
t2.test() ;
如果调用test2的话,则如下
t1.test2() ;
t2.test2() ;

括号要加上、如果没有括号调用的是属性。
但是没有此属性,则会报错。

调用成员方法是、对象.方法
#6
Dsky2016-06-16 17:44
回复 5楼 zzjvslove
如果我没有调用构造方法,也就是没有t1/t2,那么我还要调用test()和test2(),是要写成“类名.”也就是Test.test()/Test.test2()吗???还是说我的test与test2可以同时有两种调用方式?“引用.”“和类名.”???
#7
zzjvslove2016-06-16 21:35
回复 5楼 zzjvslove
正如你所说,如果你想要通过  类名.方法  的形式调用方法的时候、你必须把public void test() 通过static关键字把成员方法变成静态的public static void test()
此时就可以直接通过  类名.方法  的形式调用 。
public void test2() 如果要想被类名Test直接调用的话,也同样要静态化。同上方式


你例子中的是通过创建的对象来调用方法。创建对象是在方法(如test())先写了之后才new出来的、New的对象可以调用在创建本身时之前先有的方法;

如果你的方法没有静态化,通俗意思就是说 先定义了Test类、然后在类中写方法。也就是说先有类再有方法、此时类只能调用比类先创建出来的成员才可以、如果加一个static就把方法先以类存在、就可以通过类的方法调用
#8
TsugumiYuu2016-06-17 04:26
楼上的解释其实都很全面了,不过新手可能还是不是很好理解,我换一个思路给你讲下这道题

构造类的步骤——我们用实际例子距离
public class Test{                                 ——假设我们是上帝,构造了人类这个类
public Test(){} //构造函数                         ——这是写人类的构造方法,因为括号里没有给参数,又叫做无参构造,我们可以叫他屌丝=。=
public Test(int i)(){} //构造函数                  ——这也是一个人类的构造方法,给了参数,是有参构造,我们叫他富二代=V=
public void test(){}//成员方法                     ——人类的方法1:吃饭
public int test2(){}//成员方法!                   ——人类的方法2:上厕所
}

好了我们现在进入主程序
public static void main(string [] args){
  Test t1 = new Test();//调用构造方法                    ——我们实体化了一个人类屌丝叫t1
  Test t2 = new Test(5);//调用构造方法                   ——实体化了一个富二代叫做t2
  ********************};//调用成员方法(这个怎么调。。。)——那么我们调用成员方法,就相当于问你:屌丝(t1)和富二代(t2)是不是都可以吃饭都可以上厕所,所以他们都可以
                                                              调用吃饭和上厕所的方法,彼此也不会冲突,就是t1.test(),t1.test2()和t2.test()和52.test2()了
#9
Dsky2016-06-17 16:17
回复 7楼 zzjvslove
3Q,这东西搞得有点晕,清晰了好多,我再屡屡。。。
#10
Dsky2016-06-17 16:19
回复 8楼 TsugumiYuu
谢谢大家,我再屡屡,,,
#11
Hql95272016-06-21 18:54
回复 8楼 TsugumiYuu
这回复亮了!解释的透透的!
1