引用类型

一、数组

数组是相同类型数据的有序集合。数组描述的是若干个相同类型的数据,按照一定的先后次序排列组合而成。其中每一个数据被称作一个元素,每一个元素可通过索引来访问它们。

数组变量是引用类型,数组是一个对象,数组中的每个元素相当于该对象的成员变量

声明数组有两种方式

1、type[] arr_name;

2、type  arr_name[];

数组的初始化方法有三种:默认初始化、动态初始化和静态初始化

静态初始化:如 int[] a={1,2,3};

默认初始化:如 int[] b=new int[3];//此时会默认给数组元素赋值,赋值规则和成员变量赋值规则一样(即数字为0,布尔为false,引用类型为null)

动态初始化:如 int[] c=new int[3];

                     c[0]=1;c[1]=2;c[2]=3;

for-each循环

是JDK1.5新增的功能,专门用于读取数组或集合中的所有元素,即对数组进行遍历

如 int[] c={1,2,3};

   for(int m:c){

System.out.println(m);

}

抽象类(abstract)

是一种模板模式,为所有子类提供了一个通用模板,所有子类可以在这个模板的基础上进行扩展。

通过抽象类,可以避免子类设计的随意性

要点

1、有抽象方法的类一定要定义成抽象类(有方法声明无方法体的方法叫做抽象方法,如:public void run();)

2、抽象类不能被实例化,即不能通过new被实例

3、抽象类可以有属性、方法、构造方法,但是构造方法不能用来new实例,只能被子类调用

4、抽象方法必须被子类实现

抽象方法的意义在于将设计与实现分开

接口()

1、为什么需要接口

接口就是比抽象类更抽象的抽象类,可以更加规范地对子类进行约束,全面专业地实现规范与具体实现的分离。

接口就是规范,定义了一组规则。

项目是多变的,因此我们必须以不变应万变才能从容开发,此处的不变就是规范,因此我们在开发项目时往往是面向接口编程。

2、如何定义接口

格式:[访问修饰符] interface 接口名 [extends 父接口1,父接口2,......]{

常量定义 无论有还是没有总是public static final

方法定义 无论有还是没有总是public static

}

如:

public interface TestInterface {
//接口中只有常量和抽象函数
/*public static final无论写还是不写,定义的变量都有这个*/ String MAX_DEGREE="BOSS";
int MAX_SPEED=120;
/* public abstract*/public void test01();
 /* public abstract*/void test02();

}

3、要点

1、子类通过implements来实现接口的规范

如:public class MyClass implements TestInterface{



public void test01() {
System.out.println(TestInterface.MAX_DEGREE);

}


@Override
public void test02() {
// TODO 自动生成的方法存根

}


}

2、接口不能用于创建实例,但可以用于声明引用变量类型

3、一个类实现了接口,必须实现接口中所有的方法,并且这些方法只能是public

4、接口支持多继承

如:package cn.sxt.oop.interfaceTest;


public interface InterfaceA {
void aaa();
}
interface InterfaceB{
void bbb();
}
interface InterfaceC extends InterfaceA,InterfaceB{
void ccc();
}
class MyClass implements InterfaceC{


@Override
public void aaa() {
// TODO 自动生成的方法存根

}


@Override
public void bbb() {
// TODO 自动生成的方法存根

}


@Override
public void ccc() {
// TODO 自动生成的方法存根

}

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值