① java里什么是方法,方法有什么特点
1、构造方法名与类名相同
2、构造方法没有返回值
3、主要作用是完成对新对象的初始化
4、在创建新对象时,系统自动的调用该类的构造方法
5、一个类可以有多个构造方法
6、每个类都有一个默认的构造方法,但是一旦用户显示的定义了构造方法,则系统默认的构造方法就不会生成了。
Java 接口
接口(英文:Interface),在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。
接口并不是类,编写接口的方式和类很相似,但是它们属于不同的概念。类描述对象的属性和方法。接口则包含类要实现的方法。
除非实现接口的类是抽象类,否则该类要定义接口中的所有方法。
接口无法被实例化,但是可以被实现。一个实现接口的类,必须实现接口内所描述的所有方法,否则就必须声明为抽象类。另外,在 Java 中,接口类型可用来声明一个变量,他们可以成为一个空指针,或是被绑定在一个以此接口实现的对象。
接口与类相似点:
一个接口可以有多个方法。
接口文件保存在 .java 结尾的文件中,文件名使用接口名。
接口的字节码文件保存在 .class 结尾的文件中。
接口相应的字节码文件必须在与包名称相匹配的目录结构中。
接口与类的区别:
接口不能用于实例化对象。
接口没有构造方法。
接口中所有的方法必须是抽象方法,Java 8 之后 接口中可以使用 default 关键字修饰的非抽象方法。
接口不能包含成员变量,除了 static 和 final 变量。
接口不是被类继承了,而是要被类实现。
接口支持多继承。
接口特性
接口中每一个方法也是隐式抽象的,接口中的方法会被隐式的指定为public abstract(只能是 public abstract,其他修饰符都会报错)。
接口中可以含有变量,但是接口中的变量会被隐式的指定为public static final变量(并且只能是 public,用 private 修饰会报编译错误)。
接口中的方法是不能在接口中实现的,只能由实现接口的类来实现接口中的方法。
② 构造方法和成员方法的区别是什么
构造方法:构造方法是用来构造类的对象的,方法名和类名相同没有返回值。一般用 new 构造方法名() 来创建该类的对象。在不写构造方法的情况下会有一个默认的无参构造方法。
成员方法:简单地说就是可以通过类的实例(某个对象)调用的方法,也就是我们正常情况下使用的方法。
③ 构造方法的作用和特征是什么
1、构造方法名一定与类同名
2、构造方法无返回值类型(void 也不行)
3、构造方法可以没有(默认一个无参构造方法),也可以有多个构造方法,他们之间构成重载关系
4、如果定义有参构造函数,则无参构造函数将被自动屏蔽
5、构造方法不能被继承
6、构造方法不能手动调用,在创建类实例的时候自动调用构造方法。
④ 什么是构造方法什么是重载
构造方法 构造方法是一种特殊的方法,与一般的方法不同是:
1.构造方法的名字必须与定义他的类名完全相同,没有返回类型,甚至连void也没有。
2.构造方法的调用是在创建一个对象时使用new操作进行的。构造方法的作用是初始化对象。
3.不能被static、final、synchronized、abstract和native修饰。构造方法不能被子类继承。
构造方法可以被重载。没有参数的构造方法称为默认构造方法,与一般的方法一样,构造方法可以进行任何活动,但是经常将他设计为进行各种初始化活动,比如初始化对象的属性。
在Java中,任何变量在被使用前都必须先设置初值.Java提供了为类的成员变量赋初值的专门功能:构造方法(constructor)构造方法是一种特殊的成员方法,它的特殊性反映在如下几个方面:
(1)构造方法名与类名相同.
(2)构造方法不返回任何值,也没有返回类型.
(3)每个类可以有零个或多个构造方法.
(4)构造方法在创建对象时自动执行,一般不能显式地直接调用.
具体使用:分别计算长、宽为20、10和6、3的两个长方形的面积。
class RectConstructor{
double length;
double width;
double area(){
return length*width;
}
RectConstructor(double width,double length){//带参数的构造方法
this.length=length;
this.width=width;
}
}
public class RectDemo{
public static void main(String args[]) {
RectConstructor rect1=new RectConstructor(10,20);
RectConstructor rect2=new RectConstructor(3,6);
double ar;
ar=rect1.area();
System.out.println("第一个长方形的面积是"+ar);
ar=rect2.area();
System.out.println("第二个长方形的面积是"+ar);
}
}
重载 重载是不是多态?
re:
重载还是一种是多态吧,有四种形式的多态
1.虚函数多态
2模板多态
3重载
4转换
所谓的动态和静态区分是另一种基于绑定时间的多态分类,严格来说,重载是编译时多态,即静态多态,根据不同类型函数编译时会产生不同的名字如int_foo和char_foo等等,以此来区别调用。故重载仍符合多态定义——通过单一标识支持不同特定行为的能力,只是重载属于静态多态,而不是通过继承和虚函数实现的动态多态。
⑤ java中什么是构造方法及其作用
无意中翻到这条提问,看了很多回答,发现歧义较重,在这里解答一下,为了避免后边来的朋友们踩雷
新手学习Java在构造方法这里很容易踩雷,构造方法是用来初始化的,这句勉强没错,可构造方法是用来创建对象的,这句就错了,实际上,在构造方法执行之前,类的内存空间已经开辟完成了,意思就是说对象已经创建了,这步是由new关键字来完成的,而构造方法的作用是给类中的变量进行初始化赋值
假设,假设构造方法是用来创建对象用的,就无法解释抽象类中为什么允许构造方法的存在,抽象类无法实例化,不能被创建,但是抽象类中允许构造方法的存在,举例从侧面证明一下:
abstract class Animal{
String name;
public Animal() {
System.out.println("抽象父类的无参构造");
}
abstract void eat();
}
class Dog extends Animal{
public Dog() {
super();
System.out.println("子类的无参构造");
}
@Override
void eat(){
}
}
public class Test {
public static void main(String[] args) {
Dog d = new Dog();
System.out.println(d.name);
}
}
随手敲的很简陋的一段代码,不要在意格式上的不严谨,领会精神,这段代码执行后的结果为:
抽象父类的无参构造
子类的无参构造
null
当执行Dog d = new Dog()这句代码时,大致会分两步,一是加载类,开辟类的内存空间,这是由new完成的,第二步执行构造方法,为类中的变量初始化赋值,在执行Dog的无参构造时,系统会默认调用父类的无参构造,也就是super(),super关键字是对该类的父类进行的引用,它并不是一个对象,这也是个难点,感兴趣的可以去查一下,而super()这句代码可以简单理解为调用这个类的父类的无参构造
在上述代码中,父类Animal是一个抽象类,而抽象类不可被实例化,如果构造方法的作用是创建对象,在这一步上逻辑就无法自洽,而实际情况是:抽象类执行了构造方法,但却没有创建对象,同时成员变量name也有了初始值null
⑥ 构造方法的三个特点
1. 构造方法必须与所在的类具有相同的名字。
2. 构造方法没有返回类型,甚至连 void 也没有。
3. 构造方法的调用是在创建一个对象时使用 new 操作符进行的。构造方法的作用是初始化
java的构造函数其实很简单。
一个类 被实例化 也就是被new的时候 最先执行的是 构造函数,如果你有留心。你会发现很多类里面根本没有写构造函数。
在java类中,如果不显示声明构造函数,JVM 会给该类一个默认的构造函数。一个类 可以有多个构造函数。构造函数的主要作用 一是用来实例化该类。二是 让该类实例化的时候执行哪些方法,初始化哪些属性。当一个类声明了构造函数以后,JVM 是不会再给该类分配默认的构造函数。
比如一个实体类
public class entity{
private int id;
private String userName;
get...set..方法
}
如果这样写该类就是默认的构造函数。该类实例化的时候 id 和 username 就是默认值 即 id=0,username=null.
如果在里面加入这样一个方法
public entity(int id,String userName){
调用get..set..
}
如果这样写 该类实例化的时候 必须给出 id 和username参数。 JVM不会再给这个类默认构造函数
你也可以理解成 在没有给构造函数的时候 JVM 给你的类加了一个这样的函数
public entity(){
this.id=0;
this.userName=null;
}
其实构造函数是用来对一个类以及变量进行实例化。
⑦ 什么是构造方法构造方法和普通方法有什么区别
1楼在胡说吧?创建类会调构造方法?构造方法实在new对象的时候被调用的,是被系统自动调用的,而且一定会被调用,构造方法一般用来给对象的属性做初始化的,构造方法没有返回值,普通方法必须有返回值,就算不返回也得写个
void,这就是他们的区别
⑧ java中什么叫构造方法
构造方法是一种特殊的方法,与一般的方法不同是:
1.构造方法的名字必须与定义他的类名完全相同,没有返回类型,甚至连void也没有。
2.构造方法的调用是在创建一个对象时使用new操作进行的。构造方法的作用是初始化对象。
3.不能被static、final、synchronized、abstract和native修饰。构造方法不能被子类继承。
class RectConstructor{
double length;
double width;
double area(){
return length*width;
}
//下面这个方法就是所谓的构造方法,没有返回值,方法名与类名相同~~~
RectConstructor(double width,double length){//带参数的构造方法
this.length=length;
this.width=width;
}
}
其实构造方法就是为了给类中成员赋初值~~~~~~~~~~~~~