标题:构造方法也需要返回值类型吗? ******谢! 写了那么的方法是否有点重复, ...
只看楼主
yinmingzheng13
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2008-4-13
结帖率:100%
 问题点数:0 回复次数:10 
构造方法也需要返回值类型吗? ******谢! 写了那么的方法是否有点重复,能否就重要的几种详细说明
class Person
{
    String name;
    int age;
    
    
    static int x;
    
    Person( String n,int a)
    {
        name = n;
        age = a;
    }
    
    Person( String n)
    {
        name = n;
        age =-1;
    }
    
    Person( int age,String name)
    {
        this.age = age;
        this.name = name;
    }
    
    Person()
    {
        this(0,"");
    }
    
    void sayHello()
    {
        System.out.println("Hello!My name is"+ name);
    }
    
    void sayHello( Person another)
    {
        System.out.println("Hello,"+another.name+"!My name is "+name);
    }
    
    boolean isOlderThan( int anAge)
    {
        bloolean flg;
        if( age> anAge ) flg=true; else flg=false;
        return flg;
    }
    
    
    public static void main (String[] args)
    {
        System.out.println("Hello World!");
        
    }
    
    class Student extends Person
    {
        String school;
        int score;
        //void sayHello(){
            //System.out.println("Hello! My name is "+ name+ ".My school is"+ school);//}
    }
    
    void sayHello( Student another)
    {
        System.out.println("Hi");
        if(school==another.school) System.out.println("Schoolmate");
    }
    
    boolean isGoodStudent()
    {
        return score>=90;
    }
    void testThisSuper()
    {
        a = age;
        a = this.age;
        a = super.age;
    }
   
    void sayHello()
    {
        super.sayHello();
        System.out.println("My school is" +school);
    }
   
   
    Student(String name,int age,String school)
    {
        super(name, age);
        this.school = school;
    }
   
    Student(){}
   
    public void main( String [] args)
    {
        Person p = new Person("Liming",50);
        Student s =  new Student("Wangqiang",20,"PKU");
        Person p2 = new Student("Zhangyi",18,"THU");
        Student s2 = (Student) p2;
    }
}
搜索更多相关主题的帖子: 返回值 详细说明 类型 构造 
2008-04-14 20:09
Character
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2008-4-2
得分:0 
构造方法不允许有返回值。如果有返回值。那就成为了普通的方法。在构造的时候会使用JDK提供的隐式构造方法。你写的前四种构造方法通过不同的参数表而形成了重载。实际上我觉得重载的意义并不是非常大。可能是我接触的较少。觉得重写的意义要比重载的意义大的多。而你下边方法名重复的方法。就是一种典型的重写。但是一般重写是不会出现在同一个类里的。一般都是具象类实现抽象类。或者根据需求子类重新定义父类同名方法的一种形式。
2008-04-16 10:31
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
得分:0 
构造函数是要重载的.要不一旦参数个数或类型不对.是没办法用的..java在你有构造函数的时候不会像c++那样提供不带参数构造函数...

学习需要安静。。海盗要重新来过。。
2008-04-16 10:41
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
得分:0 
java在你有构造函数的时候不会像c++那样提供不带参数构造函数...

这句话,你可以验证一下。

Fight  to win  or  die...
2008-04-16 11:03
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
得分:0 
api兄弟是说我吗?

class Explicit{
     static  Test3 b=new Test3();                                 
    Explicit(String s){
        System.out.println("Explicit");
    }
    Test3 a=new Test3();
}
class Test3{
    Test3(){
        System.out.println("Test31");
    }
    public String toString()
    {
        return getClass().getName();
        }
}
class Test{
    public static void main(String[] args){
        Explicit e=new Explicit();
        System.out.println(Explicit.b);
    }
}

[[it] 本帖最后由 sunkaidong 于 2008-4-16 11:14 编辑 [/it]]

学习需要安静。。海盗要重新来过。。
2008-04-16 11:10
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
得分:0 
回复 5# 的帖子
我是说验证后半句,c++中

Fight  to win  or  die...
2008-04-16 12:23
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
得分:0 
恩.看来是我记错了.

学习需要安静。。海盗要重新来过。。
2008-04-16 12:33
yinmingzheng13
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2008-4-13
得分:0 
编译时描述说:   
         ....................................
         ....................................
         ....................................
         void sayHello()
    {
        super.sayHello();
        System.out.println("My school is" +school);
    }
   
   
    Student(String name,int age,String school)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    {
        super(name, age);
        this.school = school;
    }
   
    Student(){}
    ~~~~~~~~~~~
    public void main( String [] args)
    {
        Person p = new Person("Liming",50);
        Student s =  new Student("Wangqiang",20,"PKU");
        Person p2 = new Student("Zhangyi",18,"THU");
        Student s2 = (Student) p2;
    }
}
                打波浪线的两句:  方法生命无效;需要返回值类型

无师自通
2008-04-16 13:27
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
得分:0 
class Person
{
    String name;
    int age;
   
   
    static int x;
   
    Person( String n,int a)
    {
        name = n;
        age = a;
    }
   
    Person( String n)
    {
        name = n;
        age =-1;
    }
   
    Person( int age,String name)
    {
        this.age = age;
        this.name = name;
    }
   
    Person()
    {
        this(0,"");
    }
   
    void sayHello()
    {
        System.out.println("Hello!My name is"+ name);
    }
   
    void sayHello( Person another)
    {
        System.out.println("Hello,"+another.name+"!My name is "+name);
    }
   
    boolean isOlderThan( int anAge)
    {
        boolean flg;
        if( age> anAge ) flg=true; else flg=false;
        return flg;
    }
   
   
   }
   
    class Student extends Person
    {
        String school;
        int score;
        //void sayHello(){
            //System.out.println("Hello! My name is "+ name+ ".My school is"+ school);//}
   // }
   
    void sayHello( Student another)
    {
        System.out.println("Hi");
        if(school==another.school) System.out.println("Schoolmate");
    }
   
    boolean isGoodStudent()
    {
        return score>=90;
    }
    void testThisSuper()
    {
        //a = age;
        //a = this.age;
       // a = super.age;
    }
   
    void sayHello()
    {
        super.sayHello();
        System.out.println("My school is" +school);
    }
   
   
    Student(String name,int age,String school)
    {
        super(name, age);
        this.school = school;
    }
   
    Student(){}
   
    public static void main( String [] args)
    {
        Person p = new Person("Liming",50);
        Student s =  new Student("Wangqiang",20,"PKU");
        Person p2 = new Student("Zhangyi",18,"THU");
        Student s2 = (Student) p2;
    }
}

学习需要安静。。海盗要重新来过。。
2008-04-16 13:35
yinmingzheng13
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2008-4-13
得分:0 
    上面的大哥 你在哪地方做了修改?

无师自通
2008-04-20 19:45



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-209016-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.427666 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved