黑马程序员技术交流社区
标题:
学习总结概要
[打印本页]
作者:
fangtianyu
时间:
2018-1-25 22:54
标题:
学习总结概要
就业班技术帖
经过java基础班这段时间的学习,我已经对java这门学科有了初步的印象。它的主要思想就是面向对象,即是让别人来替我们完成工作,而不是自己亲自来完成。这样的做法大大降低了我们的工作量,使编程变得简单化。为了实现这一思想,java引入了封装、继承和多态这些概念。Java就是依靠这些东西来使自己变得与众不同的。接下来我们就具体聊聊java的主要内容。
一、基本数据类型
整数型:
byte short int long
所占大小: 1字节 2字节 4字节 8字节
浮点型:
float double
所占大小: 4字节 8字节
字符型:
char
所占大小: 2字节
布尔型:
boolean
所占大小: 理论占1/8个字节,但实际不确定
这是我们最常使用的变量类型,也是基础班时学到的知识,我也就不多说了,接下来我们来看看就业班中的新知识。
二、继承(extends)
所谓的继承:多个类有共同的成员变量和成员方法,抽取到另外一个类中(父类),让多个类去继承父类,我们的多个类就可以获得父类的成员了。
Java中的继承是单一继承、多层继承。一个类只能继承一个父类,且子类只能继承父类的非私有成员,被static修饰的成员也无法被继承,若父类中有方法被子类重写,则子类调用父类该方法时将直接调用被重写后的方法。
方法的重写:在子父类中,子类的成员方法和父类的成员方法完全一样(方法名、参数列表、返回值类型均一样),这样的情况我们称子类重写了父类的方法。但有一个要注意的是,子类重写的方法的权限修饰符必须大于等于父类的该方法。
与其相对应的是方法的重载,它是在一个类中,有多个重名的方法,但是其参数不一样(参数的个数、参数的类型、参数的顺序),和返回值类型无关。
在调用子类的构造方法创建对象时,如果子类构造方法的第一行没有调用任何构造方法,那么java程序将默认调用父类的无参构造,来为父类的成员变量赋值,以备子类使用。
继承的优缺点:
优点:提高了代码的复用性,提高了代码的可维护性。
缺点:类的耦合性增强了,即子父类之间的关系变得非常紧密。
三、抽象类
所谓的抽象类就是被abstract修饰的类,它既可以有抽象方法也可以有非抽象方法。其中抽象方法是指被abstract修饰并且没有方法体的方法。但是抽象方法只能存在于抽象类中,并且如果一个类继承了抽象类,那么他必须重写它所有的抽象方法。
抽象类的成员特点:
成员变量:可以有成员变量,也可以有常量
成员方法:可以有抽象方法,也可以有非抽象方法
构造方法:可以有构造方法,用于对抽象类的成员变量初始化,但是抽象类不能创 建对象
四、接口(interface)
接口是一个比抽象类还抽象的类,接口里所有的方法都是抽象方法,接口和类的关系是实现(implements)。
接口的成员特点:
只能有抽象方法,默认使用public&abstract修饰方法,且只能使用它们修饰方法。
默认使用public static final来修饰成员变量,即是常量。且没有构造方法,因为接口里的成员变量是常量,只需显示初始化即可,无需构造初始化。因此,接口也不可创建对象。
类与接口之间的关系:
类与类: 继承关系 单一继承、多层继承
类与接口: 实现关系 多实现
接口与接口: 继承关系 多继承(不存在方法重名导致的混乱问题)
接口的优点:
(1)、类与接口的关系:实现关系,而且是多实现,一个类可以实现多个接口,而类与类之间是继承关系,java中的继承是单一继承,这打破了继承的局限性。
(2)、对外提供了规则(USB接口)。
(3)、降低了程序的耦合性(可以实现模块化开发,定义好规则,每个人实现自己的模块)。
五、多态
多态是java语言中面向对象的有一大特点,也是我们学习的最后一大特点。它的前提是要有子父类的继承关系,子类要重写父类的方法,以及要有父类引用指向子类对象。
多态的成员特点:
成员变量:编译时看的是左边,运行时看的还是左边。
成员方法:编译时看的是左边,运行时看的是右边。
静态方法:编译时看的是左边,运行时看的也是左边。
由此可见,编译时看的都是左边,运行时成员方法看的是右边,其余看的都是左边。
多态中的向上转型和向下转型:
它们是引用数据类型之间的转换,其中:
向上转型:自动的,是由小到大的,即是子类型转换成父类型。
向下转型:强制的,是由大到小的,即是父类型转换成子类型。格式为: 子类型 对象名=(子类型)父类型的对象名;
但要注意的是:只有本身是什么类型,你才能强转成什么类型不能转换成其他类型,否则会发生类型转换错误。
多态的特点:
缺点:无法直接访问子类特有的成员
优点:可以提高代码的可维护性,可以提高代码的可扩展性(把方法参数写成父类类型,这样我们在调用的时候可以传任意子类,而无需每多一个子类就写一个方法)。
六、包与权限修饰符
包的特点:可以有多层结构,不同包下的文件名可以重复,包的声明必须是第一行代码。
包的好处:帮助我们分类查找,还可以避免重名。
接下来就是权限修饰符了,java中的权限修饰符共有四个;它们分别是:
public: 公共的,当前类,相同包下的不同类,不同包下的类都可以访问
default:默认的,当前类,相同包下的不同类才可以访问
private:私有的,只有当前类才可以访问
protected:受保护的,当前类,相同包下的不同类,以及不同包下只有继承了子父类关系的子类才可以访问
我们所学的所有修饰符的修饰范围如下:
修饰符 类 成员变量 成员方法 构造方法
public Yes Yes Yes Yes
protected 无法修饰 Yes Yes Yes
default Yes Yes Yes Yes
private 无法修饰 Yes Yes Yes
static 无法修饰 Yes Yes 无法修饰
abstract Yes 无法修饰 Yes 无法修饰
final Yes Yes Yes 无法修饰
内部类:分为成员内部类,局部内部类,和匿名内部类。其中成员内部类在类的成员位置,和成员变量、成员方法的位置一样,在内部类中,可以直接访问外部类成员,包括私有成员。局部内部类位于方法内,出了方法之后就无法使用。匿名内部类是某个接口或某个类的子类对象,它可以用作匿名对象调用方法,也可以使用多态给匿名内部类创建一个父类对象,使用对象调用方法。
关于我们就业班所学知识,我就总结到这里,剩下的知识只有以后有机会再说,这就是我目前学习到的java技术知识。
作者:
小堂姐姐
时间:
2018-1-26 15:36
内容详细已收藏
作者:
采姑娘的小蘑菇
时间:
2018-1-26 15:51
满满的干货
作者:
yuxiaoyi
时间:
2018-1-26 16:22
收藏咯很棒
作者:
黄马良
时间:
2018-1-27 10:52
66666666666
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2