标签:
一、接口
接口的定义格式:
interface 接口名{
}
接口要注意的事项 :
1. 接口是一个特殊的类。
2. 接口的成员变量默认的修饰符为: public static final 。那么也就是说接口中的成员变量都是常量(必须初始化)。
3. 接口中 的方法都是抽象的方法,默认的修饰符为: public abstract。
4. 接口不能创建对象。
5. 接口是没有构造方法的。
6. 接口是给类去实现使用的,非抽象类实现一个接口的时候,必须要把接口中所有方法全部实现。
实现接口的格式:
class 类名 implements 接口名{
}
接口的作用:
1. 程序的解耦。 (低耦合)
2. 定义约束规范。
3. 拓展功能。
//普通的铅笔类
class Pencil{
String name;
public Pencil(String name){
this.name = name;
}
public void write(){
System.out.println(name+"沙沙的写...");
}
}
//橡皮接口
interface Eraser{
public void remove();
}
//带橡皮的铅笔
class PencilWithEraser extends Pencil implements Eraser {
public PencilWithEraser(String name){
super(name);
}
public void remove(){
System.out.println("涂改,涂改....");
}
}
class Demo8
{
public static void main(String[] args)
{
//System.out.println("Hello World!");
PencilWithEraser p = new PencilWithEraser("2B铅笔");
p.write();
p.remove();
}
}
二、类与接口、接口与接口
(一)类与接口的关系
类与接口之间关系: 实现关系。
类与接口要注意的事项:
1. 非抽象类实现一个接口时,必须要把接口中所有方法全部实现。
2. 抽象类实现一个接口时,可以实现也可以不实现接口中的 方法。
3. 一个类可以实现多个接口 。
疑问: java为什么不支持多继承,而支持了多实现呢?
class A{
public void print(){
System.out.println("AAAAAA");
}
}
class B{
public void print(){
System.out.println("BBBBBB");
}
}
class C extends A ,B{
}
public static void main(String[] args){
new C().print(); //存在同名的方法
}
(二)接口与接口的关系
接口与接口之间关系: 继承关系。
接口与接口之间要注意事项:一个接口是可以继承多个接口的。
三、多态
四、值交换
需求1:定义一个函数交换两个基本类型变量的值。
class Demo5
{
public static void main(String[] args)
{
int a = 3;
int b = 5;
changeValue(a,b);
System.out.println("交换之后的值:a = "+a +" b="+b); // a=3 b=5
}
//需求1:定义一个函数交换两个基本类型变量的值。
public static void changeValue(int a , int b){
int temp = a;
a = b;
b = temp;
System.out.println("方法内部交换的值:a = "+a +" b="+b);
}
}
重点:
(1)形式参数是所属函数的局部变量;
(2)不同函数的局部变量之间没有关系,相互独立。
需求2:定义一个函数交换数组中两个 元素的位置。
class Demo5
{
public static void main(String[] args)
{
int[] arr = {23,10,9};
changeArr(arr,1,2);
System.out.println("数的元素:"+ Arrays.toString(arr));//23 9 10
}
//需求2: 定义一个函数交换数组中两个 元素的位置。
public static void changeArr(int[] arr , int index1, int index2){
int temp = arr[index1];
arr[index1] = arr[index2];
arr[index2] = temp;
}
}
重点:
需求3:
import java.util.*;
class Person{
int x =10;
}
class Demo5
{
public static void main(String[] args)
{
Person p = new Person();
changeObj(p,20);
System.out.println("x = "+ p.x); //x=20
}
public static void changeObj(Person p ,int x){
p.x = x;
}
}
重点:
标签:
原文地址:http://www.cnblogs.com/stellar/p/5207427.html