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

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

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

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

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

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

    展开全文
  • 实例方法、方法、构造方法

    千次阅读 多人点赞 2019-11-19 14:11:00
    Java中的方法分为方法(用static修饰,也叫静态方法)和...构造方法,没有返回值(就是连void都没有),方法名与类名一样 public static void myMethod();//方法 public void myMethod2();//实例方法 public ...

    Java中类的方法分为类方法(用static修饰,也叫静态方法)和实例方法(没有用static修饰,也叫非静态方法)
    实例方法,就是一般的方法
    类方法,有static修饰符,典型的主函数
    构造方法,没有返回值(就是连void都没有),方法名与类名一样

    public static void myMethod();//类方法
    public void myMethod2();//实例方法
    public Test(){}//构造方法,没有返回值,方法名与类名一样
    

    实例方法与类方法的区别:

    1、类方法是属于整个类,而不属于某个对象。
    2、类方法只能访问类成员变量,不能访问实例变量,而实例方法可以访问类成员变量和实例变量。
    3、在类方法中不能使用super、this关键字。
    4、类方法的调用可以通过类名.类方法和对象.类方法,而实例方法只能通过对象.实例方法访问。
    5、类方法只能访问类方法,而实例方法可以访问类方法和实例方法。
    6、类方法不能被覆盖,实例方法可以被覆盖。
    
    1. 构造方法—构造方法负责对象的初始化工作,为实例变量赋予合适的初始值。必须满足以下的语法规则:
    1、方法名与类名相同;
    2、不要返回类型(例如return、void等);
    3、不能被static、final、native、abstract和synchronized修饰,不能被子类继承
    

    1.1. 默认构造方法—默认构造方法时没有参数的构造方法,分为

    a.隐含的默认构造方法:public ClassName(){}
    b.程序显示定义默认构造方法:public Employee(){this("无名氏");}
    

    1.2. 重载构造方法—通过new创建一个对象后,在不同的条件下,对象可能会有不同的初始化行为,可以通过重载构造方法来表达对象的初始化行为。具体参考this关键字的用法。
    1.3. 子类调用父类的构造方法—父类的构造方法不能被子类调用,可以通过super语句调用父类的构造方法。例如:
    在这里插入图片描述
    用super调用父类的构造方法必须遵守以下规则:

    1. 子类的构造方法中不能直接通过父类的方法名调用父类的构造方法,使用super语句;
    2. 加入在子类的构造方法中有super语句,它必须作为构造方法的第一条语句(同this语句);
    

    1.4. 构造方法的作用域

    1、当前类的其他构造方法通过this语句调用;
    2、当前类的子类的构造方法通过super语句调用;
    3、在程序中通过new语句调用。
    

    1.5. 构造方法的private访问级别— 构造方法为private级别时,意味着只能在当前类中访问它:当前类的其他构造方法中可以通过this语句调用,此外还可以在当前类的成员方法中使用new调用。
    以下场合中,可以把类的所有构造方法声明为private:

    1、这个类中仅仅包含一些供其他程序调用的静态方法,没有任何实例方法。
    2、禁止这个类被继承。声明为private后,如果定义了它的子类,子类的方法中无法调用父类的任何构造方法。
    3、类需要把构造自身实例的细节封装起来,不允许其他程序通过new语句创建这个类的实例。提供静态方法。
    
    展开全文
  • Java构造方法和无参构造方法详解

    千次阅读 多人点赞 2020-12-09 12:05:16
    一:有参数构造方法 在之前我们要为一个...上面定义了四个有参数构造方法,发现了构造方法可以重载, 书写的习惯是重载的构造方法按照参数的个数进行升序排序。但是如何去调用有参数的构造方法呢? DEMO:调用...

     

    一:有参数构造方法

    在之前我们要为一个对象赋值,先要创建好对象之后然后“对象名.属性名”或者调用属性的setter为属性赋值。但是在很多时候觉得这样做很麻烦,最好的做法是在创建对象的时候完成属性的初始化操作,此时需要使用到有参数构造方法方能完成该功能(有人把构造方法叫做构造器)。

     

    DEMO:定义有参数构造方法

    上面定义了四个有参数构造方法,发现了构造方法可以重载,

    书写的习惯是重载的构造方法按照参数的个数进行升序排序。但是如何去调用有参数的构造方法呢?

     

    DEMO:调用有参数构造方法

    此时发现了我们不需要像之前一样,要为对象的属性赋值就必须先创建对象再使用“对象名.属性名”或者使用setter 方法去实现了,而是直接使用有参数的构造方法去实现。

     

    DEMO:继续观察代码

    此时提示“这个无参数构造Student()方法未定义”,在之前我们说了JVM会默,认为类提供无参数构造方法,但是这只能是在没有任何有参构造方法的条件下,现在我们定义了四个有参数构造方法(JVM认为你不需要无参数构造方法了),所以JVM不再提供无参数的构造的构造方法了。

    所以我们定义 了有参数构造方法那么也需要显示的定义出无参数构造方法。

     

    DEMO:显示定义无参数构造方法

     

    总结:

    1、构造方法的出现是为了方便为对象的属性初始化值

    2、一般在类中构造方法的顺序都是按照参数的个数去升序排序的

    3、如果定义了有参构造方法那么JVM就不会在提供无参数构造了,所以如果我们定义了有参构造那么无参构造也要显示的定义出来。

     

    二:Java无参构造方法

     

    一:构造方法给的概念

    在之前我们使用过方法,在调用的方法的是时候需要在方法名称之后加.上小括号,括号里面可以传递实参,那么我们在创建一个对象的时候使用的是“new类名()”的方式去实现,其实上这也是一种方法,但是这个方法我们没有明确的去定义,那为什么可以调用呢?观察代码。

    DEMO:观察代码

    以上的代码在创建的对象的时候使用“Student()”,发现了在“Student”之后使用小括号,这和方法的调用很相似,其实“Student()”就是-一个方法,是一个特殊的方法-构造方法,发现了构造方法的名称和类名一样,而且一定是在new关键字之后调用的。但是我们没有在Student类中看到这个方法依然能够调用,原因是JVM(Java的虚拟机,暂时不用管,你就认为是系统,后面我们讲解JVM内存模型的时候会分析)系统默认为该类提供了无参数构造方法,所以我们才能调用。

    我们也可以显示的将该方法定义出来。

    DEMO:显示的定 义构造方法

    此时我们显示的定义了一个五参数构造方法,构造方法是在什么时候调用的呢?如何很明显的看出调用了构造方法?

    DEMO:观察构造方法调用的时机

    总结:

    1、构造方法的概念(构造方法的出现是为了在实例化对象的时候可以为对象的属性初始化值)。

    2、默认jvm会为每个类提供一个无参数构造方法。

    3、构造方法的特征和它与普通方法的区别你要清楚。

     

     

    学习不要走马观花的学,每个知识重点大纲,就是学习路线都是根据每一天市场上多数公司用到的新技术整理,在学习的时候还需要结合练习题来做这里的话我也将我之前在学习过程中用到的一些学习资料整理成了文档,以及我自身之前的一个面试文案和知识点补充,有需要的朋友可以加我的QQ群   697888503   ,这里也希望大家最终都能够学有所成,学习编程不是一天两天的功夫,勤能补拙才是硬道理,祝大家最终都能成为一名合适开发攻城狮。 

    展开全文
  • 答案:错误。众所周知,被abstract修饰的是抽象,抽象不能被实例化,但是可以被继承,也可以继承。那么根据代码:public class Test1{ ... //异常:Cannot instantiate the type Car 不能实例化一个Car ca...

    答案:错误。


    众所周知,被abstract修饰的类是抽象类,抽象类不能被实例化,但是可以被继承,也可以继承。

    那么根据代码:

    public class Test1{
    		public static void main(String[] args) {
    			Car car=new Car(1);  //异常:Cannot instantiate the type Car 不能实例化一个Car
    			car.color();
    		}
    	}
    abstract class Car    //抽象类
    {
    	int length;
    	Car()        //抽象类的无参构造
    	{
    		
    	}
    	Car(int length)    //抽象类的带参构造
    	{
    		this.length=length;
    	}
    	public void color()
    	{
    		System.out.print("I have color!");
    	}
    }

    在书中有明确说明:抽象类的构造方法定义为protected,因为他只能被子类使用,即用super(paraments);


    参考文献:Java语言程序设计(第十版)P426页

    展开全文
  • 在学习群里面看到一位同学问——一个类中可以定义多个空参数的构造方法吗 我当是在想应该不行的吧,然后看到那个问问题的同学说:“可以再定义局部的空参构造方法”,然后自己看了一下关于局部的知识确实阔以,...
  • Python构造方法

    千次阅读 2019-12-17 15:50:56
    描述:是函数的一个变种,在Python中,函数式编程和面向对象编程,java和C#之类只能把函数写到类里,没有函数式编程,所以只有面向对象,所以在Python中了选择,可能就变得有点麻烦,但是在Python里,函数式编程是可以...
  • public class Test{ private int x; private String s; public Test(int x) { this.x = x;...//调用自身的构造方法,这种写法只能存在于构造方法中,只能有一个,在此构造方法中必须写在其他语句之前
  • 而抽象在代码实现方面发挥作用,可以实现代码的重用,例如,模板方法设计模式是抽象一个典型应用,假设某个项目的所有Servlet都要用相同的方式进行权限判断、记录访问日志和处理异常,那么就可以定义一个...
  • Java基础知识面试题(2020最新版)

    万次阅读 多人点赞 2020-02-19 12:11:27
    原理是什么Java语言哪些特点什么是字节码?采用字节码的最大好处是什么什么是Java程序的主类?应用程序和小程序的主类何不同?Java应用程序与小程序之间那些差别?Java和C++的区别Oracle JDK 和 OpenJDK 的...
  • 、为什么要引入构造方法。 当创建对象的时候需要对属性值初始化,构造方法,即对象创建时要执行的方法。...注意:每个类有构造方法,即使不写也,编译时javac会自动检查是否有构造方法...
  • Java私有构造方法

    千次阅读 2019-09-30 21:51:44
    提到私有构造方法之前,先来简单说明一下两个名词表示,一个是私有,一个构造方法。私有用访问修饰符private表示。 Java 的访问修饰符是什么 访问权限修饰符是表明成员的访问权限类型的关键字。使用这些...
  • 在C++中,的对象建立分为两种,一种是静态建立,如A a;... 静态建立一个类对象,是由编译器为对象在栈空间中分配内存,是通过直接移动栈顶指针,挪出适当的空间,然后在这片内存空间上调用构造
  • JVM不予许未实例化的情况下直接调用构造方法。必须new过才行。this是指实例化后的对象 代码: public class Person { String name; int age = 25; public Person(String name){ setName(name); } public ...
  • PHP多个构造方法使用

    千次阅读 2016-12-29 16:22:13
    PHP的构造方法与Java的有所不同,不能多个构造方法只能有一个构造方法,若想要实现类似Java的构造方法的使用,可以使用下面的办法来实现: //PHP构造方法使用 class Test{ function __construct(){ echo 'Test...
  • 定义一个类Person,定义name和age属性,定义参的构造方法对name和age进行初始化。在测试中创建该的2个对象,姓名、年龄分别为lili、19和lucy、20,在屏幕打印出2个对象的姓名和年龄。 输入格式: 本题目无输入 ...
  • 设计一个只能创建一个唯一实例的——单例模式 1. 背景  老师布置了一个思考题:设计一个只能创建一个唯一实例的。让我们只要想一下思路即可。自己的第一反应就是设计模式中的单例模式。自己百度了一下单例...
  • 成员变量(实例变量、变量)是指在体内且在方法体外定义的变量,其作用域是整个。 局部变量是指在方法体内声明的变量,其作用域是从声明处开始至它所在的最小块的语句结束处,另外,方法中的形参、for语句中...
  • 一文搞懂Java的 构造方法 和 访问权限

    千次阅读 多人点赞 2020-07-20 16:41:54
    Java是一门当今最火的编程语言之,拥有很多现成可用的库,在我们编程生涯中,有着无比重要的地位。本文主要讲解Java中的构造方法和四种类的访问权限。
  • 接口是我们常用的,抽象好像并不是怎么常用,但这并不代表他不重要,他可以被继承,可以有构造方法,可以给中的成员变量赋初值,接口就没有这样的功能。       抽象的出现使得...
  • Java中的构造方法(构造函数)与普通方法区别

    千次阅读 多人点赞 2020-10-17 00:50:29
    ** Java中的构造方法构造方法)与普通方法区别 ...构造方法一个特殊的成员,在实例化时会自动调用,其构造方法定义格式如下: 修饰符 方法名(){} 其中需要注意的是: 方法名与类名相同; 没有返回值
  • 类方法:1.用static修饰的是类方法.  2.无论是实例方法还是类方法,在对象创建之后,都可以用“.”运算符调用这些方法。  3.JAVA语言中,中的类方法,在该加载到内存时,就分配了相应的入口地址,所以类方法...
  • 抽象构造方法的使用

    千次阅读 2018-05-08 15:58:29
    //抽象构造方法的使用package Extends;abstract class Persons{//定义一个抽象 String name; int age; char sex; //定义一个构造函数 public Persons(String name,int age,char sex){ this.name = name; ...
  • 上面中,已经有一个构造函数,形参有两个,我们又重载一个有3个形参的构造函数,为了减少代码量,就想着让3个参数的构造函数调用2个参数的构造函数,然后在执行一些自己的代码,这就如同派生先调用基类的同名...
  • * 在调用父类的构造方法时,super必在子类构造方法的第行,否则会报错*/class Demo6{//显示定义了构造方法,这个类就没了隐藏了的无参构造方法public Demo6(String name){this.name = name;this.age = 0;}...
  • 在js的中,可分为三种方法,constructor构造方法、静态方法与普通方法。 一、constructor构造方法 1.概念 ...的作用在于构建对象,而constructor构造方法就是用于构建...当一个类没有constructor方法时会自...
  • java匿名内部什么是匿名内部?匿名内部的使用场景?...匿名内部适合创建那种只需要使用一次的,也就是说创建一个匿名内部,只需要用一次即可。 匿名内部如何创建? new 类名(参数) | 实现接口...
  • 课后习题 Java设计...要求:该至多只能创建男,女两对象。 package com.liuyanzhao; class Person { private static int c=0,c1=0; private String name; private int age; private String sex; publ
  • 结论:(总的来说,get和set方法就是为了能以得到和设置实体中的私有属性值,而一个类中至少要有一个构造方法,当没有人为添加的时候,编译器会自动加入一个隐式的无参构造方法,当人为添加时,编译器就不会自动...
  • 答案是:java中子是不会继承父类的构造函数但是可以调用 父类 Animal: package encryption; public class Animal { private String name = "animal"; public Animal() { System.out.println(".....this ...
  • 1. 构造方法  构造方法负责对象的初始化工作,为实例变量赋予合适的初始值。必须满足以下的语法规则:   方法名与类名相同;不要返回类型(例如return、void等);不能被static、final、native、abstract和...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 693,323
精华内容 277,329
关键字:

一个类只能有一个构造方法