我是靠谱客的博主 凶狠星月,最近开发中收集的这篇文章主要介绍java抽象类数组初始化_32.抽象类与接口的比较?构造方法,构造方法重载,什么是复制构造方法?求N的阶乘?Java环境搭建:JDK、JRE、JVM关系?...,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

抽象类与接口的比较

1、什么是抽象类?

就是对类更高的抽象。抽象类作为多个子类的共同父类,可以理解为系统实现过程中的中间产品。这个中间产品已经实现了系统的部分功能,但不能当成最终产品,还需要进一步的完善。

当父类的一些方法不能确定时,可以用abstract关键字来修饰改方法【抽象方法】,用abstract来修饰该类【抽象类】

1)抽象类不能被实例化。

2)用abstract关键字来修饰一个方法时,这个方法就是抽象方法,抽象方法不能有主体【即不能实现】;用abstract关键字来修饰一个类是,这个类就叫抽象类。

3)抽象类不一定要包含abstract方法。也就是说抽象类可以没有abstract方法;但是一旦类包含了abstract方法,则这个类必须声明为abstract。

2、什么是接口?

接口是一种规范,接口就是多个应用程序的通信标准。接口就是给出一些没有内容的方法,封装在一起,到某个类要使用的时候,在根据具体情况吧这些方法写出来。

1)接口中的所有方法都不能有主体,不能被实例化。

2)一个类可以实现多个接口。

3)接口中可以有变量【但是变量不能用private和protected修饰】

a、Java接口中的变量是public,static,final,

b、接口中的变量,本质上都是static的,不管你加不加static修饰

c、在Java开发中,我们经常用的是变量,定义在接口中,作为全局变量使用。

4)一个接口不能继承其它的类,但是可以继承别的接口。

5)接口没有方法就可以作为一个标志,比如可序列化的接口Serializable,没有方法的接口称为空接口。

抽象类与接口的比较

接口和抽象类都不能实例化,他们都位于继承树的顶端,用于被其他类实现和继承。接口和抽象类都可以包含抽象方法,实现接口或继承抽象类的普通子类都必须实现这些抽象方法

区别:

1、属性:接口没有普通属性,只有静态属性,并且只能用public final static修饰。

抽象类可以有普通属性,可以是静态属性。

2、方法:接口中的方法都没有方法体并且都是默认使用public abstract修饰,不能

定义静态方法。而抽象类可以有普通方法,也可以没有抽象方法,也可以定义静态方法。

3、构造函数:接口中没有构造器,抽象类中可以有构造器,但是它不能用于new对象,而是用于子类电泳来初始化抽象类操作。

4、初始化块:接口中不能包含初始化块,而抽象方法中可以包含初始块

构造方法,构造方法重载,什么是复制构造方法?

构造方法是类的一种特殊方法,它的主要作用是完成对新对象的初始化

1、方法名和类名相同,没有返回值

2、在创建一个类的新对象时,系统会自动的调用该类的构造方法完成对新对象的初始化

3、普通方法可以与类名相同,和构造方法唯一的区别在于,构造方法没有返回值。

4、定义类的时候,若没有自定义构造方法,则会有一个默认方法的无参的构造方法,若自定义了构造方法,则没有无参构造方法。

5、构造方法不能被继承,构造方法只能别显示或者隐式地调用。

6、子类的构造方法总是先调用父类的构造方法,如果子类

求N的阶乘

public static int getResult(int n){

​if(n<0){

​throw new ValudateException(“非法参数”);

}

if(n1 || n0){

​return 1;

}

return getResult(n-1)*n;

}

Java环境搭建:JDK、JRE、JVM关系

JDK=JRE+开发工具集(例如Javac编译工具等)

JRE=JVM+Java SE 标准类库

自动类型提升

byte/char/short–> int–> long–> float–> double

特别的:当byte、char、short三种类型的变量做运算时,结果为int型

byte a =1;

int b=2;

int c = a + b;

##String

声明String,使用一对“ ”

String可以和8种基本数据类型变量做运算,且运算只能是连接运算:+

运算的结果仍然是String类型

二进制—八进制—十六进制

创建数组:

public static void main(String[] args) {

//创建数组的第一种方法

int[] arr=new int[6];

int intValue=arr[5];

//System.out.println(intValue);

//创建数组的第二种方法

int[] x={1,2,3,4};

//System.out.println(x[1]);

//创建数组的第三种方法

int[] y= new int[]{1,2,3,4,5};

int m=0;

boolean length = isLength(m,y);

if(length){

System.out.println(y[m]);

}else{

System.err.println("数组标越界");

}

}

//判断数组下标是否越界

public static boolean isLength(int m,int arr[]){

boolean flag=false;

int length = arr.length;

if(m

flag=true;

return flag;

}

最后

以上就是凶狠星月为你收集整理的java抽象类数组初始化_32.抽象类与接口的比较?构造方法,构造方法重载,什么是复制构造方法?求N的阶乘?Java环境搭建:JDK、JRE、JVM关系?...的全部内容,希望文章能够帮你解决java抽象类数组初始化_32.抽象类与接口的比较?构造方法,构造方法重载,什么是复制构造方法?求N的阶乘?Java环境搭建:JDK、JRE、JVM关系?...所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(33)

评论列表共有 0 条评论

立即
投稿
返回
顶部