java基础总结

重载(Overloading)java

1)方法重载是让类以统一的方式处理不一样类型数据的一种手段。多个同名函数同时存在,具备不一样的参数个数/类型。重载Overloading是一个类中多态性的一种表现。
2) Java的方法重载,就是在类中能够建立多个方法,它们具备相同的名字,但具
有不一样的参数和不一样的定义。调用方法时经过传递给它们的不一样参数个数和参数类型
来决定具体使用哪一个方法, 这就是多态性。
3) 重载的时候,方法名要同样,可是参数类型和个数不同,返回值类型能够相同也能够不相同。没法以返回型别做为重载函数的区分标准。
重写(Overriding)
1)父类与子类之间的多态性,对父类的函数进行从新定义。若是在子类中定义某
方法与其父类有相同的名称和参数,咱们说该方法被重写 (Overriding)。在Java中,子类可继承父类中的方法,而不须要从新编写相同的方法。但有时子类并不想原封不动地继承父类的方法,而是想做必定的修改,这就须要采用方法的重写。方法重写又称方法覆盖。
2)若子类中的方法与父类中的某一方法具备相同的方法名、返回类型和参数表,
则新方法将覆盖原有的方法。如需父类中原有的方法,可以使用super关键字,该关键 字引用了当前类的父类。
3)子类函数的访问修饰权限不能少于父类的;编程

值传递(形式参数类型是基本数据类型)数组

方法调用时,实际参数把它的值传递给对应的形式参数,形式参数只是用实际参数的值初始化本身的存储单元内容,是两个不一样的存储单元,因此方法执行中形式参数值的改变不影响实际参数的值session

引用传递(形式参数类型是引用数据类型参数):app

也称为传地址。方法调用时,实际参数是对象(或数组),这时实际参数与形式参数指向同一个地址,在方法执行中,对形式参数的操做实际上就是对实际参数的操做,这个结果在方法结束后被保留了下来,因此方法执行中形式参数的改变将会影响实际参数函数

 

接口this

接口是一种比抽象类更加抽象的“类”。这里给“类”加引号是我找不到更好的词来表示,可是咱们要明确一点就是,接口自己就不是类,从咱们不能实例化一个接口就能够看出。如new Runnable();确定是错误的,咱们只能new它的实现类。spa

抽象类设计

在面向对象的领域一切都是对象,同时全部的对象都是经过类来描述的,可是并非全部的类都是来描述对象的。若是一个类没有足够的信息来描述一个具体的对象,而须要其余具体的类来支撑它,那么这样的类咱们称它为抽象类。对象

抽象类一般表明一个抽象概念,他提供一个继承的出发点,当设计一个新的抽象类时,必定是用来继承的。因此,在一个以继承关系造成的等级结构里面,树叶节点应当是具体类,而树枝节点均应当是抽象类。

 

继承

就是扩展已有类的功能,在继承中分为子类和父类,父类有时候也称为超类(super class,子类有时候称为派生类。

继承的基本语法为:class子类 extends 父类 {}

继承的限制:1)在Java中不容许多重继承,一个子类只能继承一个父类,不能继承多个父类;2java中容许多层继承;3)在继承中子类不能访问父类中的私有成员,只能继承公共操做。可是私有成员能够经过公共方法获得访问。

 

实现

类实现接口,本质上与类继承类类似,区别在于“类最多只能继承一个类,即单继承,而一个类却能够同时实现多个接口”,多个接口用逗号隔开便可。实现类须要覆盖全部接口中的全部抽象方法,不然该类也必须声明为抽象类。

2、接口是否可继承接口?

接口是能够继承接口的。好比在项目中须要N个接口,他们都要实现一些经常使用的功能,这样你就能够只写一个接口,而后让你的其余接口都这个接口。一般IBaseDao就是这样的。定义一个泛型接口,而后让其余接口去继承它并定义各自的泛型类,这样就方便不少。

3、抽象类是否可实现(implements)接口?

抽象类能够实现接口

4、抽象类是否可继承实体类(concrete class)

抽象类能够继承实体类,但前提是实体类必须有明确的构造函数。答案很明确,能够继承。其实从Object就是个实体类,javaAPI文档里,每一个抽象类的条目里都明确写着直接或间接继承自Object

全部的class都必须有一个构造方法,若是你没有在代码里声明构造方法,系统会自动给你生成一个公有无参的构造方法。而只要你本身声明了一个构造方法,不管有参无参,私有公有,系统就再也不帮你生成默认无参构造器了。

全部的子类构造器都要求在第一行代码中调用父类构造器,若是不写,系统默认去调用父类的无参构造器。

多态

 面向对象编程有三大特性:封装、继承、多态。

      封装隐藏了类的内部实现机制,能够在不影响使用的状况下改变类的内部结构,同时也保护了数据。对外界而已它的内部细节是隐藏的,暴露给外界的只是它的访问方法。

      继承是为了重用父类代码。两个类若存在IS-A的关系就可使用继承。,同时继承也为实现多态作了铺垫。那么什么是多态呢?多态的实现机制又是什么?请看我一一为你揭开:

      所谓多态就是指程序中定义的引用变量所指向的具体类型和经过该引用变量发出的方法调用在编程时并不肯定,而是在程序运行期间才肯定,即一个引用变量倒底会指向哪一个类的实例对象,该引用变量发出的方法调用究竟是哪一个类中实现的方法,必须在由程序运行期间才能决定。由于在程序运行时才肯定具体的类,这样,不用修改源程序代码,就可让引用变量绑定到各类不一样的类实现上,从而致使该引用调用的具体方法随之改变,即不修改程序代码就能够改变程序运行时所绑定的具体代码,让程序能够选择多个运行状态,这就是多态性。

      好比你是一个酒神,对酒情有独钟。某日回家发现桌上有几个杯子里面都装了白酒,从外面看咱们是不可能知道这是些什么酒,只有喝了以后才可以猜出来是何种酒。你一喝,这是剑南春、再喝这是五粮液、再喝这是酒鬼酒….

JSP九大隐式对象:
request HttpServletRequest
response HttpServletResponse
session HttpSession
application ServletcContext
config ServletConfig
exception (特殊状况下使用)
page this(本JSP页面)
out JspWriter(带缓冲的PrintWriter)
pageContext (使普通Java类可访问WEB资源,自定义 标签经常使用)
4个域对象:
pageContext(称之为page域)
request(称之为request域)
session(称之为session域)

servletContext(称之为application域

冒泡排序

package 冒泡排序;

import java.util.Arrays;

/**

 * 冒泡排序

 * @author mmz

 */

public class BubbleSort {

    public static void BubbleSort(int[] arr) {

        int temp;//定义一个临时变量

        for(int i=0;i<arr.length-1;i++){//冒泡趟数

            for(int j=0;j<arr.length-i-1;j++){

                if(arr[j+1]<arr[j]){

                    temp = arr[j];

                    arr[j] = arr[j+1];

                    arr[j+1] = temp;

                }

            }

        }

    }

    public static void main(String[] args) {

        int arr[] = new int[]{1,6,2,2,5};

        BubbleSort.BubbleSort(arr);

        System.out.println(Arrays.toString(arr));

    }

}

相关文章
相关标签/搜索