您的位置:首页 > 编程语言 > Java开发

java学习总结

2016-02-27 16:13 316 查看
java学习总体

最近在实训java,正好抽空把学到的只是进行了整理,在此声明次文章及后续java实训的内容大多是上课内容。

第一章 抽象类、接口、内部类

1、抽象类

1.1、 定义

:抽象类往往用来表征对问题领域进行分析、设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象。

通常在编程语句中用 abstract 修饰的类是抽象类。在C++中,含有纯虚拟函数的类称为抽象类,它不能生成对象;在java中,含有抽象方法的类称为抽象类,同样不能生成对象。

抽象类是不完整的,它只能用作基类。在面向对象方法中,抽象类主要用来进行类型隐藏和充当全局变量的角色

2、举例

:自然界下最聪明的当属人类,除了人类还有其他的生物,今天我来举个例子,比如说动物,这是一个概括性词。我们日常说的动物并不是特质什么,而是对猫、狗、羊。。。。。。。这些东西的统称,这里我们java中有个专有名词—-抽象类。在java中动物我们把它叫做抽象类,猫、狗、羊。。。。。。。这些就是这个抽象类下的具体类。每种动物具备不同特性。在java中继承抽象类的具体类就具有特有的方法。这些方法有继承抽象类的也有自己特有的。

1.3、 特点

:在举例中我们可以看出抽象类的特点

3.1、抽象类和必须用abstract修饰

格式
abstact class Demo1{}           类
public abstact void eat(){}    方法


3.2、抽象类是抽象方法既不充分也不必要条件

也就是说抽象类不一定具有抽象函数
有抽象函数的类也不一定是抽象类


3.3、抽象类不能实例化对象

可以用抽象类定义对象用具体类实列化


3.4、抽象类的子类

要么是抽象类
要么是重写抽象类中的抽象方法


3.5抽象类成员特点

成员变量

可以是变量也可以常量

构造方法

可以有构造方法但是这个构造方法是为了方便子类继承调用的,并不能用来实例化对象

成员变量

可以有抽象方法也可以有飞抽象方法

下面是我实训老师给的课堂作业。想自学java的伙伴可以尝试联系一下,很简单的。



2、接口

2.1描述:继续回到我们的猫狗案例,我们想想狗一般就是看门,猫一般就是作为宠物了,对不。但是,现在有很多的驯养员或者是驯兽师,可以训练出:猫钻火圈,狗跳高,狗做计算等。而这些额外的动作,并不是所有猫或者狗一开始就具备的,这应该属于经过特殊的培训训练出来的,对不。所以,这些额外的动作定义到动物类中就不合适,也不适合直接定义到猫或者狗中,因为只有部分猫狗具备这些功能。所以,为了体现事物功能的扩展性,Java中就提供了接口来定义这些额外功能,并不给出具体实现,将来哪些猫狗需要被培训,只需要这部分猫狗把这些额外功能实现即可。

2.2接口特点:

首先接口是通关关键字interface来定义的,也就是说只要有interface修饰的类就是接口了,这个好识别吧。

格式:interface 接口名{}

另外当我们调用接口的时候我们需要用implements关键字

格式:class 类名 implements 接口名{}

接口类不能实例化对象

接口和抽象类在这方面有点像,都是通过子类中的具体类来实现实列化的

接口的子类

要么抽象类

要么是重写接口中的抽象方法

2.3接口成员特点:

成员变量

只能是常量(默认修饰符 public static final)

构造方法

- 没有构造方法。接口的主要功能就是扩展,而没有具体存在所以不需要构造函数,但是有时候也需要用接口来定义对象是因为既然用接口了就一定有子类继承这个接口,所以接口定义的对象实际上就是子类的对象

成员方法

只能是抽象方法

默认修饰符(public abstract )

3、内部类

定义:顾名思义将类定义在其他类中

内部类成员访问特点:

内部类可以直接访问外部类的成员,包括私有。

外部类要访问内部类的成员,必须创建对象

种类:成员内部类+局部内部类

相关问题:

类与类,类与接口以及接口与接口的关系

类与类

类与类之间只能进行单继承,但是可以多层继承

类与接口

可以单实现也可以多实现,也可以多继承

接口与接口

可以单继承也可以多继承

抽象类和接口的区别

成员区别

抽象类可以常量也变量 抽象方法有抽象和飞抽象

接口只有常量和抽象方法

关系区别

类与类 单继承+多继承

类与接口 单实现+多实现

接口与接口 单继承+多继承

设计理念区别

抽象类 体现的是“Is a”的关系,有共性

接口 被实现体现 “Like a”的关系,有扩展性



package cn.edu.hysf;
interface Controlw
{
void contr();
}
class SCDP
{
private Controlw controlw;
public SCDP(Controlw c)
{
this.controlw=c;
}
public void contr()
{
controlw.contr();
}
}

class wendu implements Controlw
{

private int t;
public wendu(int t)
{
this.t=t;
}
public void contr()
{
if(t>28)
System.out.println("开启制冷模式");
else if(t<20)
System.out.println("开启制热模式");
}
}
public class test02 {

public static void main(String[] args) {
// TODO Auto-generated method stub
wendu w=new wendu(19);
SCDP scdp=new SCDP(w);
scdp.contr();
}

}

上面的大棚控温练习代码


以上是第一章内容,内部类个人觉得没必要讲的太详细。所以那个地方就省略了。以上内容来自老师PPT ,其中代码都是自己写,属于原创!大家觉得好的话,就赞一下哈!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: