精华内容
下载资源
问答
  • Java 必须包含一个一个以上的构造方法 构造方法用于构造该的实例对象,Java语言通过new关键字来调用构造方法,从而返回该的实例。 构造方法一个类创建对象的根本途径,如果一个类没有构造方法,这个...

    Java类 必须包含一个或一个以上的构造方法

    构造方法用于构造该类的实例对象,Java语言通过new关键字来调用构造方法,从而返回该类的实例。

    构造方法是一个类创建对象的根本途径,如果一个类没有构造方法,这个类通常无法创建实例,因此,Java语言提供了一个功能:

    如果程序员没有为一个类编写构造方法,则系统会为该类提供一个默认的且无参的构造方法。

    一旦程序员为一个类提供了构造方法,系统将不再为该类提供构造方法。

    展开全文
  • Student 中定义一个无参的构造方法一个接收两个参数的构造方法,两个参数分别为姓名和 成绩属性赋值 在测试中创建两个 Student 对象,一个使用无参的构造方法,然后调用方法给姓名和...

    请按照以下要求设计一个学生类 Student,并进行测试。 要求如下:

    1. Student 类中包含姓名、成绩两个属性
    2. 分别给这两个属性定义两个方法,一个方法用于设置值,另一个方法用于获取值.
    3. Student 类中定义一个无参的构造方法和一个接收两个参数的构造方法,两个参数分别为姓名和 成绩属性赋值
    4. 在测试类中创建两个 Student 对象,一个使用无参的构造方法,然后调用方法给姓名和成绩赋值, 一个使用有参的构造方法,在构造方法中给姓名和成绩赋值
    
    class Student {
        private String name;
        private double grade;
    
        public Student() {
        }
    
        public Student(String name, double grade) {
            this.name = name;
            this.grade = grade;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public double getGrade() {
            return grade;
        }
    
        public void setGrade(double grade) {
            this.grade = grade;
        }
    }
    
    public class Test01 {
        public static void main(String[] args) {
            Student stu1 = new Student();
            stu1.setName("zhangsan");
            stu1.setGrade(99);
            System.out.println(stu1.getName());
            System.out.println(stu1.getGrade());
    
            Student stu2 = new Student("lisi", 100);
            System.out.println(stu2.getName());
            System.out.println(stu2.getGrade());
        }
    }
    

     

    展开全文
  • java中子类构造方法和父类构造方法

    千次阅读 2019-02-05 11:55:48
    1.当子类不重写构造方法,子类默认拥有一个无参构造方法,但是,注意,这个构造方法第一行默认执行super();   class Father{ f(){ System.out.println("子类会调用Father的构造方...

    有继承关系的前提下,子类一定会调用父类的构造方法。因为构造方法是用来进行初始化的,子类要初始化,必须先使用父类的构造方法。

    以下情形参考:

    1.当子类不重写构造方法,子类默认拥有一个无参构造方法,但是,注意,这个构造方法第一行默认执行super();

     

    class Father{
    	f(){
                System.out.println("子类会调用Father的构造方法");
            }
    }
    
    class Son extends Father{
    	//子类这里,相当于系统会默认写上s() {super()};
    }
    
    class Demo{
        public static void main(String[] args) 
    	{
    		Son s = new Son();	
    		
    	}
    }

    运行结果打印出     子类会调用Father的构造方法

    2.当子类重写了自己的构造方法,构造方法默认第一行仍然是 super();

    注意:1和2中父类一定要有一个无参的构造方法, 不然super()调啥东西?

     

    3.子类重写了自己的构造方法,但是呢,子类希望以别的方式进行初试化。所以父类一般不只一个构造方法,那太单调了。所以父类工具初始化的需求不同,写了好几个构造方法,那子类怎么调用父类不同的构造方法----------- 重载-----------根据super()传入的签名来区分子类要的是哪个构造方法。

    class Father{
        String name;
        int age;
        
    	 //父类的第一个构造方法,无参构造方法
    	Father(){
    		System.out.println("子类会调用Father的构造方法");
        }
        //父类的第二个构造方法
        Father(String name){
            System.out.println("子类会调用Father的第二个构造方法");
        }
    		//父类的第三个构造方法,需要知道父类中的name  和age信息
        Father(String name, int age){
            System.out.println("子类会调用Father的第三个构造方法");
        }	  
    }
    
    class Son extends Father{
        String name;
        int age;
    	Son(String name, int age){
             super(name, age);
        }
    }
    
    class Demo{
        public static void main(String[] args) 
    	{
    		Son s = new Son("timo",8);	
    		
    	}
    }

    总之:

    子类的构造方法一定会调用父类的构造方法,只是写成了super

    既然一定会,那你父类得有吧

    父类有了构造方法,那也得符合子类的需求吧

    所以,根据子类super()中传入的参数列表来匹配, 也就是重载。

    展开全文
  • public class Test{ private int x; private String s; public Test(int x) { this.x = x;...//调用自身的构造方法,这种写法只能存在于构造方法中,且只能有一个,在此构造方法中必须写在其他语句之前
    public class Test{
        private int x;
        private String s;
        public Test(int x) {
            this.x = x;
        }
        public Test(int x, String s) {
    //调用自身的构造方法,这种写法只能存在于构造方法中,有且只能有一个,在此构造方法中必须写在其他语句之前
            this(x);
            this.s = s;
        }
    }

    1.上面注释的是我觉得大家最容易忘记的this功能

    2.this就是指向当前对象了,这个容易理解和掌握

    3.匿名类或内部类中要调用外部类方法,要使用:外部类名.this.方法名

    4.类中可以在将自身对象作为参数时使用this。



    this与static势不两立,因为static跟具体对象没关系,this就是具体对象的引用。

    一个构造方法中要调用另外一个构造方法,不能通过名字来调用,必须通过this(XXX)来调用。

    展开全文
  • 如果本身没有写构造方法,为了让能拥有面向对象的能力,那么开发工具会默认添加一个"不可见的"构造方法,其实就是无参构造方法:class Car { public void color() { System.out.print("I ...
  • 实例方法、方法、构造方法

    千次阅读 多人点赞 2019-11-19 14:11:00
    Java中的方法分为方法(用static修饰,也叫静态方法)和...构造方法,没有返回值(就是连void都没有),方法名与类名一样 public static void myMethod();//方法 public void myMethod2();//实例方法 public ...
  • Student 类有 name(姓名)、和 age(年龄)属性,一个包含两个参数的构造方法,用于给 name 和 age 属性赋值,一个 show()方法打印 Student 的属性信息 本科生 Undergraduate 增加一个 degree(学位)属性。有一个...
  • Java为什么要在中声明一个无参构造方法

    千次阅读 多人点赞 2019-09-03 21:26:28
    在Java程序编写中,子类的构造方法必定会调用父类的构造方法,如果在子类的构造方法中没有指定调用父类的哪个构造方法,在实例化子对象时,子类会默认调用父类的无参构造方法。如果在父类中没有定义无参构造方法的...
  • Java构造方法和无参构造方法

    万次阅读 多人点赞 2018-10-29 11:16:29
    编写一个类时没有添加无参构造方法,那么编译器会自动添加无参构造方法;(如果自己添加构造函数,无论参数或是没参数,默认构造函数都将无效) 编写时添加了构造方法而未添加无参构造方法,那么编译器只认参...
  • [Java基础]-- 构造方法和无参构造方法

    万次阅读 多人点赞 2016-03-03 15:06:44
    如果编写一个javaBean时没有添加无参构造方法,那么编译器会自动添加无参构造方法; 但是如果编写时添加了构造方法而未添加无参构造方法,那么编译器只认构造方法而不会默认添加无参构造方法! 所以,如果...
  • java中一个类中能如何声明多个构造方法
  • [Java基础]Java中抽象和接口中有构造方法吗?

    万次阅读 多人点赞 2017-07-05 10:56:13
    2.问题描述:Java中抽象和接口中有构造方法吗? 3.问题解答: (1)Java中抽象和接口中有构造方法吗? ①在接口中 不可以有构造方法 在接口里写入构造方法时,编译器提示:Interfaces ...
  • 再为这个添加一个重载构造方法,令其接收一个字符串参数,并在这个构造方法中把"Hello Constructor"和接收的参数一起打印出来。 public class Day6{ public static void main(String [] args){ Te...
  • 答案:错误。众所周知,被abstract修饰的是抽象,抽象不能被实例化,但是可以被继承,也可以继承。那么根据代码:public class Test1{ ... //异常:Cannot instantiate the type Car 不能实例化一个Car ca...
  • Java中构造方法

    万次阅读 多人点赞 2016-10-20 23:17:50
    constructor;...其中这就是构造函数,“a”为构造方法的形参;构造方法的方法名必须与类名一样。 构造方法没有返回类型,也不能定义为void,在方法名前面不声明方法类型。 构造方法不能作用是完成对象的
  • Java构造方法和无参构造方法详解

    千次阅读 多人点赞 2020-12-09 12:05:16
    一:参数构造方法 在之前我们要为一个对象赋值,先要创建好对象之后然后“对象名.属性名”或者调用属性的setter为属性赋值。但是在很多时候觉得这样做很麻烦,最好的做法是在创建对象的时候完成属性的初始化操作...
  • Java构造方法

    千次阅读 多人点赞 2019-09-09 19:26:39
    一个类有构造方法。当中没有定义构造函数时,系统会指定给该加上一个空参数的构造函数。这个是中默认的构造函数。当中如果自定义了构造函数,这时默认的构造函数就没有了。 Java中构造方法重载和方法...
  • 泛型构造方法定义

    千次阅读 2016-07-10 19:56:27
    泛型构造方法定义
  • java构造方法

    万次阅读 2017-03-13 22:54:51
    特点: 构造方法没有返回值 构造方法要与本同名 的修饰:public 如果中没有明确的构造方法,编译器会自动创建一个不到参数的默认构造方法
  • using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication8 { public class person { public String name; public int age;
  • class 梯形{ float 上底,下底,高; 梯形(float x,float y,float h) { 上底=x; 下底=y; 高=h; } float 计算面积() { float 面积; 面积=(上底+下底)*高/2.0
  • 如果编写一个javaBean时没有添加无参构造方法,那么编译器会自动添加无参构造方法; 但是如果编写时添加了构造方法而未添加无参构造方法,那么编译器只认构造方法而不会默认添加无参构造方法! 所以,如果...
  • 但我们可以在一个构造方法里调用其他重载的构造方法,不是用构造方法名,而是用this(参数列表)的形式,根据其中的参数列表,选择相应的构造方法。例如: public class Person{ String name; int ...
  • class TestA {  public TestA(String s)  {  System.out.println("A");  System.out.println(s);  } ...所以我们在一个类中定义了自己的带参数的构造方法的时候,必须把无参构造函数定义一下。
  • 、为什么要引入构造方法。 当创建对象的时候需要对属性值初始化,构造方法,即对象创建时要执行的方法。...注意:每个类有构造方法,即使不写也,编译时javac会自动检查是否有构造方法...
  • 构造方法

    千次阅读 多人点赞 2020-05-27 09:14:55
    默认构造方法:不带参数的构造方法,可以语句,也可以没有语句; 非默认构造方法:是指带参数的构造方法; this关键字 1.代指对象本身; 2.this访问本的对象变量和成员方法 代表当前对象; 3.在构造方法中使用...
  • System.out.println("用户名:"+name+",登录口令:"+key+",用户数:"+num); } } public class Test{ public static void main(String[] args){ User d1=new User("张三","A1234"); d1.info...
  • Java构造方法和子类构造方法

    千次阅读 多人点赞 2019-07-21 23:50:09
    构造方法是用于初始化一个新建的对象。 普通构造方法 方法名与类名相同 无返回类型 子类不能继承父类的构造方法 不能被static、final、abstract修饰(final和abstract修饰的是不能被子继承的,abstract修饰的是...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,827,354
精华内容 730,941
关键字:

一个类有多少个构造方法