精华内容
下载资源
问答
  • Error:(13, 29) java: 无法将类 com.bank.Customer构造器 Customer应用到给定类型; 需要: 没有参数 找到: java.lang.String,java.lang.String 原因: 实际参数列表和形式参数列表长度不同 问题描述: 练习遇到...

    项目场景:

    Error:(13, 29) java: 无法将类 com.bank.Customer中的构造器 Customer应用到给定类型;
    需要: 没有参数
    找到: java.lang.String,java.lang.String
    原因: 实际参数列表和形式参数列表长度不同


    问题描述:

    练习中遇到该报错

        public void Customer(String firstName,String lastName){
            this.firstName = firstName;
            this.lastName = lastName;
        }
    

    原因分析:

    构造方法前面不可以加void。


    解决方案:

        public Customer(String firstName,String lastName){
            this.firstName = firstName;
            this.lastName = lastName;
        }
    

    看了很久,希望以后戒之。

    展开全文
  • Java学习笔记----重写父类方法 super关键字 解决无法将类XXX构造器XXX应用到给定类型的问题 父类方法重写 在的继承关系,子类会自动继承父类的方法和变量,但经常会需要在子类对某些方法进行修改,在Java...

    Java学习笔记----重写父类方法 super关键字 解决无法将类XXX中的构造器XXX应用到给定类型的问题

    父类方法重写

    在类的继承关系中,子类会自动继承父类的方法和变量,但经常会需要在子类对某些方法进行修改,在Java中允许子类对父类方法进行重写,但需要注意的是,区别于不是父子类之间方法的重写,这里重写的方法与父方法应具有相同的方法名,参数列表及返回值类型

    先看一个例子

    hello.java

    //package stuJava;
    
    
    public class hello {
    
    	public static void main(String[] args) {
    		Dog dog = new Dog();//实例化子类Dog
    		dog.say();
    	}
    }
    
    class Animal{
    		
    	public void say() {//父类的say()方法
    		System.out.println("动物的叫声");
    	}
    	
    }
    
    class Dog extends Animal{//Dog类继承父类Animal
    
    	public void say() {//重写父类的say()方法
    		System.out.println("狗的叫声");
    	}
    	
    }
    

    运行如下
    在这里插入图片描述
    可以看到say()方法被重写,而且父类的方法被重写之后,子类不会再去调用也无法访问父类中被重新的方法

    *注意子类在重写父类的方法时,不能使用比父类中被重写更严格的访问权限,比如父类中是public,子类就不能写为private

    但有时候我们又希望可以访问被重写的方法或变量,Java中提供的super关键字可以解决此问题

    super关键字

    使用super关键字的格式如下

    super.成员方法/变量
    

    还是上面那个例子,稍作修改

    hello.java

    //package stuJava;
    
    
    public class hello {
    
    	public static void main(String[] args) {
    		Dog dog = new Dog();//实例化子类Dog
    		dog.say();
    		dog.test();
    	}
    }
    
    class Animal{
    	String name="动物";//父类中定义name
    	public void say() {//父类中定义say()方法
    		System.out.println("动物的叫声");
    	}
    	
    }
    
    class Dog extends Animal{//继承父类Animal
    	String name="狗";//重新赋值给name
    	public void say() {//重写父类的say()方法
    		super.say();//访问父类的say()方法
    	}
    	
    	void test() {
    		System.out.println(super.name);//输出的是父类中的name
    	}
    	
    }
    

    运行如下

    可以看到super关键字可以访问父类的成员变量和成员方法。

    super关键字还可以调用父类的构造方法

    super(参数)
    

    同样以此例子,稍作修改
    hello.java

    package stuJava;
    
    
    public class hello {
    
    	public static void main(String[] args) {
    		Dog dog = new Dog();//实例化子类Dog
    	}
    }
    
    class Animal{
    	
    	public Animal(int a) {//定义一个有参的构造方法
    		System.out.println(a);
    	}
    	
    }
    
    class Dog extends Animal{//继承父类Animal
    	
    	public Dog() {//Dog的构造方法
    		super(222);//调用父类的构造方法
    	}
    	
    }
    

    运行如下

    通过super调用父类的构造方法必须将其放在子类构造方法的第一行,并且只能出现一次

    如果将super(222);删掉
    运行报错
    在这里插入图片描述
    在cmd中提示的是 无法将类Animal中的构造器Animal应用到指定类型

    原因在于,子类的构造方法一定会调用父类的某一构造方法,通过super可以指定调用哪个父类的构造方法,如果没有指定,则会调用父类无参的构造方法

    由于父类已有一个有参(int a)的构造方法,Java不会自动给该类生成无参的构造方法,因此Java编译无法通过,我们需要手动添加无参的构造方法或者显式指定调用有参的构造方法

    将上述代码的父类中添加无参的构造方法:
    Animal.java

    class Animal{
    	public Animal() {//定义无参的构造方法
    		System.out.println("无参的构造方法被调用了");
    	}
    	
    	public Animal(int a) {//定义一个有参的构造方法
    		System.out.println(a);
    	}
    	
    }
    
    class Dog extends Animal{//继承父类Animal
    	
    	public Dog() {//Dog的构造方法
    		//方法中无代码
    	}
    	
    }
    

    运行如下
    在这里插入图片描述
    可以看到,子类在实例化的时候,默认调用父类无参的构造方法,由此例可以得出
    在定义一个类时,手动添加一个无参的构造方法,即使代码为空,这样可以避免继承时出现错误

    展开全文
  • 子类初始化的时候,如果不指定调用父类的某个构造,则需要调用父类的无参构造。如果父类的构造是有参构造。会把默认的无参构造覆盖掉。所以编译会报错。 class Person { private String name; public Person(){ ...

    在这里插入图片描述
    子类初始化的时候,如果不指定调用父类的某个构造,则需要调用父类的无参构造。如果父类的构造是有参构造。会把默认的无参构造覆盖掉。所以编译会报错。
    class Person
    {
    private String name;
    public Person(){
    System.out.println(“一个新的”);
    }
    public Person(String name){
    this(); //解决方法(加一个无参) //
    this.name=name;
    }
    public String getName(){

    return name;
    }
    }
    public class Seven
    {
    public static void main(String[] args)
    {
    Person per1=new Person(“张三”);

    System.out.println(per1.getName());
    }
    }

    展开全文
  • 无法将构造器应用到给定的类型

    千次阅读 2015-11-03 08:28:19
    一. 今天写程序时出现这个问题,困扰了我很久。在网上搜索各种解决方案都没有得到解决。...找到:说明在这里找到了int的形参类型。说明和 需要: 冲突。 原因:上面两个看懂了就是这样了。

    一.

    今天写程序时出现这个问题,困扰了我很久。在网上搜索各种解决方案都没有得到解决。原因是我的java基础太差。

    现在把错误的地方记录下来,以免之后再犯。


    一眼就可以看出来我new的方法错了,这里我是要new一个对象数组,而如果用了Book()的话就是new一个简单的Book对象。

    这里主要还是讲一下如何看这一个报错:

    需要:没有参数,说明这个地方不需要形参。

    找到:说明在这里找到了int的形参类型。说明和  需要: 冲突。

    原因:上面两个看懂了就是这样了。

    展开全文
  • 注意:以下代码是错的。 class Father ... System.out.println("Father带参构造"); } } class Son extends Father { public Son(){ System.out.println("Son无参构造"); } public Son(String
  • Error:(88, 25) java: 无法将类 com.tour.info.admin.service.TempService的方法 indexZtemp应用到给定类型;  需要: java.lang.Integer,javax.servlet.http.HttpServletRequest  找到: javax.servlet....
  •  1) 构造器也是方法,既然有泛型方法,那么构造器也可以定义为泛型方法,那么就变成了泛型构造器;  2) 由于构造器也是方法,因此反省构造器的定义和普通泛型方法的定义完全相同,例如:public MyClass(T t) { ......
  • 为了能够动态获取对象构造方法的信息,首先需要通过下列方法之一创建一个 Constructor 类型的对象或者数组。 getConstructors() getConstructor(Class<?>…parameterTypes) getDeclaredConstructors() ...
  • JavaString构造方法

    千次阅读 2019-04-24 21:17:29
    String构造方法 String代表字符串,字符串是由多个字符组成的一串数据,字符串可以看成字符数组, 1.字符串字面值“abc”也可以看成一个字符串的对象 2.字符串是常量,一旦被创建,就不能改变 3.字符串可以...
  • 文章目录包包(package)的作用JDK主要的包包的命名规范导入(import)方法方法的使用方法的重载(Overload)以及方法的重写(Override)对象(Object)和(class)面向过程和面向对象对象的本质对象和的概念的定义...
  • 深入理解Java加载(ClassLoader)

    万次阅读 多人点赞 2017-06-26 09:34:08
    【版权申明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) ...深入理解Java类型信息(Class对象)与反射机制 深入理解Java枚举类型(enum) 深入理解Java注解类型(@Annotation) 深入理解
  • Socket 构造函数和常见方法

    千次阅读 2017-01-24 14:16:23
    Socket构造函数如下: Socket()   通过系统默认类型的 SocketImpl 创建未连接套接字 ... 创建一个流套接字并其连接到指定 IP 地址的指定端口号。 Socket(InetAddress host, int port, boolean
  • 【Qt】数据类型和有用的数据操作

    千次阅读 2018-11-22 14:38:29
    Qt提供的数据类型分为基本数据类型形态的数据类型。   基本数据类型 Qt支持多个平台,创建的应用程序需要在多种平台上都具有相同大小的数据类型。为了能精确指定数据类型的大小,Qt提供了一下的基本数据类型...
  • 目录 1 基本信息 2 Java虚拟机加载结构简述 2.1 JVM三种预定义类型类加载 2.2 加载双亲委派机制介绍和分析 2.3 加载双亲委派示例...4.1 由不同的加载加载的指定类还是相同的类型吗? 4.2 在代码...
  • c++构造函数分类说明

    千次阅读 2017-07-15 15:43:23
    在面向对象编程,创建对象时系统会自动调用构造函数来初始化对象,构造函数是一种特殊的成员函数,它有如下特点: 1. 构造函数的名子必须和类名相同,不能任意命名; 2. 构造函数没有返回值; 3. 构造函数...
  • 目录 1 线程上下文加载 2 何时使用Thread.getContextClassLoader()? 3 加载与Web容器 4 加载与OSGi ...1 线程上下文加载 ... java.lang.Thread的方法 getContextClassLoader()和 se...
  • 在java语言,变量分为局部变量和成员变量大。 成员变量(实例变量、变量)是指在体内且在方法体外定义的变量,其作用域是整个。 局部变量是指在方法体内声明的变量,其作用域是从声明处开始至它所在的...
  • 客户端获得一个实例的传统方式是调用由提供的public构造器。但还有一种技术,一个可以提供public的静态工厂方法,只是一个返回实例的静态方法。 静态工厂方法与设计模式的工厂方法模式不同。在设计模式并...
  • Swift 基本知识之十三 构造函数

    千次阅读 2016-01-29 17:09:46
    类型构造器代理 的继承和构造过程 可失败构造器 必要构造器 通过闭包或函数设置属性的默认值 构造过程是使用、结构体或枚举类型的实例之前的准备过程。在新实例可用前必须执行这个过程,具体操作包括设置...
  • 众所周知,Python 是动态类型语言,运行时不需要指定变量类型。这一点是不会改变的,但是2015年9月创始人 Guido van Rossum 在 Python 3.5 引入了一个类型系统,允许开发者指定变量类型类型提示(Type Hints)。它...
  • 文章目录1、Java虚拟机的加载机制概述2、Java虚拟机加载2.1、查看加载加载的路径2.1.1、查看启动加载2.1.2、查看扩展加载3、加载之间的关系3.1、每个加载都有一个父加载3.2、父加载...
  • Spring依赖注入_set注入_构造器注入_注解注入   属性setter方法注入_方式一(通用bean)_方法二(使用内部bean)_ 基本类型的注入_集合类型的注入 一、在beans.xml,配置要被注入的bean. 二、在需要注入的bean...
  • 深入理解Java枚举类型(enum)

    万次阅读 多人点赞 2017-05-13 18:27:14
    【版权申明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) ...深入理解Java类型信息(Class对象)与反射机制 深入理解Java枚举类型(enum) 深入理解Java注解类型(@Annotation) 深入理解
  • 文章目录加载一、预定义类型类加载二、加载结构双亲委派模型一、双亲委派模型流程二、双亲委派模型源码自定义加载一、加载继承关系二、ClassLoader1、构造函数2、核心方法三、自定义加载实例...
  • 一、为什么要使用加载? Java语言里,加载都是在程序运行期间完成的,这种策略虽然会令加载时稍微增加一些性能开销,但是会给java应用程序提供高度的灵活性。例如: 1.编写一个面向接口的应用程序,可能等到...
  • 构造器[构造函数]: 在java如果用户编写的时候没有提供构造...只有在类中没有其它构造器的时候,系统才会提供默认构造器.如果你希望用户能能够调用不带参数的构造器,那么你就必须自己实现一个. extends[继
  • 在前面一篇文章,我们分析了Android应用程序资源的编译和打包过程,最终得到...在本文,我们就详细分析Android应用程序资源管理的创建以及初始化过程,为接下来的一篇文章分析应用程序资源的读取过程打下基础。
  • java获取加载

    千次阅读 2018-11-07 10:48:04
    获取加载的方法: //扩展加载Main ClassLoader classLoader = MainTest.class.... //表示当前线程的加载——应用程序加载 ClassLoader contextClassLoader = Thread.currentThread().getContext...
  • 深入理解Java加载(一):Java加载原理解析

    万次阅读 多人点赞 2017-05-15 20:47:44
    每个开发人员对java.lang.ClassNotFoundExcetpion这个异常肯定都不陌生,这个异常背后涉及的是Java技术体系加载机制。本文简述了JVM三种预定义加载,即启动加载、扩展加载和系统加载,并...
  • CFileDialog类应用详解

    千次阅读 2012-04-24 16:32:05
    最近编程用到CFileDialog选择多个文件,在网上搜索了一下,讲的千差万别,自己总结了一下, 与大家一起分享! 构造函数原型: CFileDialog(BOOL bOpenFileDialog,  LPCTSTR lpszDefExt = N

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 309,009
精华内容 123,603
关键字:

无法将类中的构造器应用到指定类型