精华内容
下载资源
问答
  • Java构造方法

    2020-11-03 16:35:50
    如果自己定义了构造方法,就不再使用默认构造方法,如果没有显示的出默认构造方法, 则会消失。 可以有多个构造方法,只要参数不同就可以构造方法之间可以相互调用,使用this(参数); 如果构造函数之间互相调用...

    构造方法
    ⼀种特殊的方法。
    创建对象时用来初始化对象,每次使用new 创建对象的时候,就会使用构造方法。
    与类具有相同的名称,但是没有返回值,Java会⾃动为每个类提供⼀个默认构造方法。
    如果自己定义了构造方法,就不再使用默认构造方法,如果没有显示的写出默认构造方法, 则会消失
    可以有多个构造方法,只要参数不同就可以。
    构造方法之间可以相互调用,使用this(参数);
    如果构造函数之间互相调用,务必写在方法第一行。且不可以递归调用
    (C/C++中叫函数,Java中叫方法,作用是一样的。)
    (Java中没有析构函数,由虚拟机回收死亡对象。)

    自己不定义构造方法,系统自动生成一个默认的空的构造方法。

    class A{}
    public class B {
    	public static void main(String [] args)
    	{
    		A a = new A();
    	}
    }
    

    自己定义构造方法,系统不会再生成构造方法。

    class A {
    	private int x;
    	private int y;
    	public A(int x){
    		this.x = x;
    	}
    	public A(int x, int y){
    		this(x);//可以互相调用,但不能形成闭环。
    		this.y = y;
    	}
    }
    public class B {
    	public static void main(String [] args)
    	{
    		A a = new A();//报错,Cannot resolve constructor 'A()',没有定义无参构造方法。
    		A a1 = new A(1);
    		A a2 = new A(1,2);
    	}
    }
    

    构造函数的修饰符
    public 用的最多,用来创建对象。
    private 私有化构造函数,不给外部创建对象,比如⼯具类,或者单例设计模式。
    default 默认的话,只能在当前包里面使用new 创建对象,几乎不用。

    单例模式:

    class A {
         private static A a = new A();
         private A(){}//私有构造方法。
         public static A getA() {
             return a;
         }
    }
    public class B {
    	public static void main(String [] args)
    	{
    		A a = new A();//报错,'A()' has private access in'A',私有访问权限。
    		
    	}
    }
    
    展开全文
  • Java 构造方法

    2020-08-26 16:04:21
    Test类如果没有定义任何构造方法Java的编译器会配上一个自动缺省构造方法,这个构造方法是空的,做任何事情,只是为了满足编译需要。 也可以自己一个空的构造方法,在里边对一些属性赋值,或者执行一些其他...

    1,作用

    创建对象

    2,类别

    2.1 无参

    Test类如果没有定义任何构造方法,Java的编译器会配上一个自动缺省构造方法,这个构造方法是空的,不做任何事情,只是为了满足编译需要。
    也可以自己写一个空的构造方法,在里边对一些属性赋值,或者执行一些其他操作

    
    public class test {
        private String name;
        private String code;
    
        public test () {
            
        }
    }
    
    public class main {
        public static void main(String[] args) {
            test obj=new test();
        }
    }
    
    
    

    在这里插入图片描述

    public class test {
        private String name;
        private String code;
    
    	public test () {
    	   System.out.println("我是无参构造方法。");
    	}
    }
    
    public class main {
        public static void main(String[] args) {
            test obj=new test();
        }
    }
    
    

    在这里插入图片描述

    2.2 有参(对创建出来的对象进行初始化)

    public class test{
    
    	private String name;
    	private String code;
    
    	public test (String name, String code) {
    		this.name = name;
    		this.code= code;
    	}
    }
    
    
    public class main {
        public static void main(String[] args) {
           test obj= new test ("Lilx",, 100001);
        }
    }
    

    综合示例:

    public class test {
        private String name;
        private String code;
    
        public test() {
            System.out.println("我是无参构造方法。");
        }
    
        public test(String name, String code) {
            this.name = name;
            this.code= code;
            System.out.println("我是有参构造方法。");
        }
    
        public static void main(String[] args) {
            test obj1= new test ();
            test obj2= new test ("Lilx", "001");
        }
    }
    

    在这里插入图片描述

    3,继承

    package text_4_1;
    
    public class GrandParent {
        GrandParent(){
            System.out.println("调用父类GrandParent构造方法" );
        }
    }
    
    package text_4_1;
    
    public class Parent extends GrandParent {
        Parent(){
            System.out.println("调用子类Parent构造方法");
        }
    }
    
    package text_4_1;
    
    public class Son extends Parent{
        Son(){
            System.out.println("调用子类Son的构造方法");
        }
    }
    
    package text_4_1;
    
    public class Main {
        public static void main(String[] args){
            Son son= new Son();
        }
    }
    
    

    在这里插入图片描述

    这个输出有点类似递归,先由子类到父类的调用,然后再从最父类开始输出

    解释:

    在Son的主方法中只调用子类构造方法,实例化子类对象并且在子类构造方法中,没有调用父类的构造方法的任何语句。
    在实例化对象时,它相应的调用了父类构造方法,在结果中还可以看到调用构造方法的顺序,首先是顶级,再继续往下直达本身类。也就是说实例化子类的时候,要首先实例化父类对象,然后在实例化子类对象,所以在子类构造方法调用父类构造方法前,父类已经实例化了。

    package text_4_1;
    
    public class GrandParent {
        GrandParent(int a){//就是将无参数构造方法改成有参数的。
            System.out.println("调用祖父类GrandParent构造方法" +a);
        }
    }
    
    package text_4_1;
    
    public class Parent extends GrandParent {
        Parent(){
        	super(5);
            System.out.println("调用父类Parent构造方法");
        }
    }
    
    package text_4_1;
    
    public class Son extends Parent{
        Son(){
            System.out.println("调用子类Son的构造方法");
        }
    }
    
    package text_4_1;
    
    public class Main {
        public static void main(String[] args){
            Son son= new Son();
        }
    }
    

    解释:

    子类调用构造函数时,必须先调用父类构造函数,因为无参数的构造函数,编译器会自动调用,也就是第一种情况不会报错。
    但是有参数的,就必须要利用Super的方法来调用。如果不进行调用那么将会报错。

    4,其他

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    链接:Java中类的构造方法
    Java中构造方法的作用

    展开全文
  • JAVA构造方法

    2018-07-26 20:13:00
    构造方法 一、构造方法注意事项1. 构造方法的名称必须和所在的类名称我完全一样,就连大小也要一样。2. 构造方法不要返回值类型,连void也不要。...6. 构造方法也是可以进行重载的。 构造...

     构造方法

    一、构造方法注意事项
    1. 构造方法的名称必须和所在的类名称我完全一样,就连大小写也要一样。
    2. 构造方法不要写返回值类型,连void也不要。
    3. 构造方法不能return一个具体的返回值。
    4. 如果没有编写任何构造方法,那么编译器将会默认赠送一个构造方法,没有参数,方法体什么事情都不做。
    5. 一旦编写了至少一个构造方法,那么编译器将不再赠送。
    6. 构造方法也是可以进行重载的。

    构造方法的目的就是为了方便对对象的属性进行赋值,可以跳过SETTER语句,但是呢,后期想给属性再修改,还是逃不掉SETTER方法。

    二、构造方法的格式

    1 public 类名(参数列表){
    2 //do something
    3 }

     


    三、给成员变量赋值的方式

    方式一:对象名.成员变量名 = 新的值
    不推荐使用,原因是学习了封装后,所有的成员变量都会用private修饰,这种方式会无法使用。

    方式二:通过setter方法
    Student stu = new Student();
    stu.setName(“张三”);

    方式三:通过有参构造方法。
    Student stu = new Student(“张三”,30);

    四、一个标准类应该具备那些东西

     1 public TestA{
     2   //类的成员变量
     3 
     4   //类的行为
     5 
     6   //类的无参构造
     7 
     8   // 类的全参构造
     9 
    10   //Getter方法 和 SETTER方法
    11 
    12 }

     

    五、快捷生成一个标准类的技巧

    在IDEA中,可以直接在标题栏选择Code ->Generate 或者直接按快捷键alt+insert。

    +Constructor 生成构造方法
    +Getter & Setter 生成getXxx和setXxx方法

    这样一个标准的类就可以快速生成。

    转载于:https://www.cnblogs.com/battlecry/p/9374042.html

    展开全文
  • java 构造方法

    2018-05-21 11:59:00
    1、构造方法的格式是什么?有哪些注意事项? 修饰符 类名 (参数列表){} ...一个类可以多个构造方法方法可以被重载,可以被private修饰,但是其他程序 能创建对象 1 package lianxi; 2 3 public cl...

    1、构造方法的格式是什么?有哪些注意事项?

    修饰符   类名 (参数列表){}

    构造方法没有具体的返回值,对象构造完方法就结束,构造方法的名字必须和类名保持一致。

    如果没有指定构造方法,默认是有一个空参数的构造方法

    一个类可以写多个构造方法,方法可以被重载,可以被private修饰,但是其他程序 不能创建对象

     1 package lianxi;
     2 
     3 public class Person {
     4     private String name;   //定义2个私有的属性
     5     private int age;
     6     public Person(String name, int age){  //创建一个构造方法
     7         this.name =name;     //需要this来调用构造方法
     8         this.age =age;
     9     }
    10     public String getName(){
    11         return name;
    12     }
    13     public void setName(String name){
    14         this.name =name;
    15     }
    16     public int getAge() {
    17         return age;
    18     }
    19     public void setAge(int age) {
    20         this.age = age;
    21     }
    22 }

    this关键字

    this.属性 是代表本类

    this(函数列表),是代表用哪一个方法,调用本类的构造函数

    this使用必须要放在第一位,跟super冲突,不要一起使用

    super关键字

    调用父类的无参数构造函数

    super();

    调用父类的有参数构造函数

    super(参数列表);

    super默认也是给一个,要放在第一位

     

    转载于:https://www.cnblogs.com/wangrongchen/p/9066521.html

    展开全文
  • JAVA 构造方法

    2015-05-26 22:27:00
    构造函数名称要与类同名,并且是没有返回值的 实例: class Cat{ public String name;... //构造方法前面可以写public,不写public也没关系 但是不可以写private //构造方法一般用来初始化值 ...
  • 今天代码突然发现Java构造方法也有不少说法呢,闲来无事,总结一下:构造方法和实例方法的区别:一、主要的区别在于三个方面:修饰符、返回值、命名1、和实例方法一样,构造器可以有任何访问的修饰符,public、...
  • java构造方法

    2019-07-04 11:07:00
    构造方法:用来构造类的实例(每一个类都默认有一个无参的构造方法,得使用new调用) 字段:类或对象所包含的数据,对类状态的一种描述; 方法:类或对象的特征或行为 作用: 给类中的字段进行初始化,可以...
  • 有关构造方法的理解:需要对对象的数据进行初始化,则创建一个构造方法,此方法名字和类名一样,但是没有返回值(类型和具体的值都没,但是可以写return;).构造方法是用来创建对象的,所以是能被对象调用的,当创建...
  • Java构造方法总结

    2015-06-19 16:06:19
    今天代码突然发现Java构造方法也有不少说法呢,闲来无事,总结一下: 构造方法和实例方法的区别: 一、主要的区别在于三个方面:修饰符、返回值、命名 1、和实例方法一样,构造器可以有任何访问的修饰符,...
  • JAVA构造方法和多态

    2020-11-03 08:49:01
    4、对于构造方法来说“返回值类型”需要定义,也需要void, 只要上void,那么这个方法就不是构造方法了。 5、对于构造方法来说,构造方法的方法名必须和类名一样。 6、构造方法的作用: 构造方法存在的意义...
  • 构造方法可以重载(重载:方法名称相同,参数列表不同) 如果一个类中没有构造方法,那么编译器会为类加上一个默认的构造方法。 默认构造方法格式如下: public 类名() { } 如果手动添加了构造器,那么默认构造...
  • 构造方法的定义构造方法也叫构造器或者构造函数构造方法与类名相同,没有返回值,连void都写构造方法可以重载(重载:方法名称相同,参数列表不同)如果一个类中没有构造方法,那么编译器会为类加上一个默认的构造...
  • java-构造方法

    2020-10-26 22:24:16
    3.对于构造方法来说 ,“返回值类型”需要指定,也void 4.构造方法方法名必须和类名一致 构造方法作用 通过构造方法的调用,可以创建对象 怎么调用 - 普通方法调用: 方法修饰符有static 的时候:类名.方法...
  • Java13构造方法

    2020-12-22 10:47:02
    构造方法返回值类型需要指定,并且void,加了void就变成普通方法了。 普通方法调用:类名.方法名(实参)、引用.方法名(实参) 构造方法调用:new 构造方法名(实参) 有返回值么?有,但是需要Java...
  • 3.不可以写return语句作用: 给对象初始化 构造方法的细节: 当一个类中没有定义构造函数时,系统会默认添加一个无参的构造方法。 当在类中自定义构造方法之后,默认的无参构造方法消失(如果需要无参构造方法需手动...
  • java默认构造方法警告:一旦阅读,您将无法看到它 我在上一篇博客文章中讨论了默认方法的多重继承,以及它们在编译和运行时的行为。 这周,我将研究如何使用默认方法进行真正的继承,实际上,默认方法并非为之设计...
  • Java中的函数被叫做方法,是实现功能处理数据的唯一方式。最基本的方法就是main方法了。在说方法前先说说返回值,返回值就是一个方法实现了功能会有一个结果,然后把这个结果返回给方法的调用者。需需要返回都必须...
  • java怎么构造函数1、java构造函数也叫构造方法,是java中一种特殊的函数。函数名与类名相同,无返回值。作用:一般用来初始化成员属性和成员方法的,即new对象产生后,就调用了对象了属性和方法。(推荐教程:java...
  • 什么是JAVA构造方法

    2015-12-18 14:37:07
    java类中,如果显示声明构造函数,JVM 会给该类一个默认的构造函数。一个类 可以有多个构造函数。构造函数的主要作用 一是用来实例化该类。二是 让该类实例化的时候执行哪些方法,初始化哪些属性。当一个类声明...
  • java构造方法

    2020-07-15 16:06:10
    2.类中的构造方法可以省略不写,编译器会自动生成 3.错误说法:构造函数必须与类同名,但方法不能和类同名。 正确说法:方法可以和类同名,和构造方法的区别是:构造方法没有返回值 public class Test{ //构造...
  • 2.构造函数可写,也可以不写;如果不写,系统将当做写了一个无参构造函数处理;3.不能写返回值类型;4.不能使用static修饰符。5.一个类可以同时存在多个构造函数,这些构造函数之间呈重载关系——即函数名相同,参数...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,552
精华内容 620
关键字:

java构造方法可以不写

java 订阅