Java基础知识要点总结

1.数据类型

       在java 中,要注意的是double,float,long这三种数据类型。

       java中默认小数类型都是double,因此在要用到float 时,要在小数的最后加上f或F,long类型也是如此,在声明时在最后加上l或L。而在小数类型转为整数类型时,会有精度损失。

       数字类型字符串类型时,其实并没有把这个东西从这种类型"转换"成另一种类型,它只是根据�原来的内容创建一个新东西。

2.面向对象

2-1 对象是什么

       在面向对象思想中,万物皆可为对象,小到一个蚂蚁,大到一个国家、星系都可以看成是一个对象。那对象是在java中如何体现的呢:通常java中一个.java文件有且只有一个与文件名相同的主类,有人就说了,这个类就是对象。我认为这种说法是不合理的,为什么呢,举个例子,地球上有60多亿人,你难道为每个都建一个类吗。因此,java中的类应该是多个对象共同特征的集合。正是这样,才有继承,实现等这些处理类的思想。

2-2 override,overload和构造方法

       首先,前两种的作用对象通常是方法,override是对方法重写,overload是对方法重载。

       override要求对重写的方法,参数不变,返回值类型不变,变得只是方法的内部实现。override通常发生在子类中。子类中定义和父类中完全一样(名字、参数、返回值)的方法就叫“重写(Override)或覆盖。如果父类中的某些方法不希望被子类Override,那么标记为final即可。

       而overload是java中多态思想的一种体现之处,用同一种方法干相同的事情。比如我比较两个数的大小,而数又分为整形和小数,通过方法重载可以很好的解决这类问题。

       构造方法可以说是特殊的,因为它的使用对象是类。构造方法没有返回值,因为一个类是不可能有返回值的。构造方法是用于对类的成员变量进行初始化,因此要求构造方法之间的参数是不能完全相同的,当没有有参构造方法时,java虚拟机会默认的添上一个无参的构造方法,一旦自己动手写了有参的构造方法,那么java虚拟机便不会自动增添一个无参的构造方法,因此在写了有参构造方法后,没有显式的给出无参构造方法的话,在调用无参构造方法时会发生错误。

2-3 什么是继承

       继承的目的是增强代码的复用率,继承发生在父类和子类之间,子类会继承父类非私有的所有东西。

       Java中一个类可以“继承”自其他类,如果A继承自B,则A叫做B的子类,B叫做A的父类(基类)。子类会从父类继承所有非private成员。子类还可以有子类。

       Java中一个类只能有一个父类(单继承),如果没指定父类,则Java内置的Object为父类。

       在java中,能够调用什么方法由变量类型决定,执行谁的方法由实际指向的对象决定,因此,一个父类类型的变量是可以指向子类的对象的。

2-4 什么是封装

        封装的目的是提高数据和操作的安全性,只要在类的属性前加上private关键字,并给出要用到的set和get方法就实现了封装。为什么要有封装呢,举个例子,一个行驶的汽车,要调节档位时,拨动一下档杆就好了,其实你也可以用手在发动机那里去拨动的,但会很危险。这里体现的意义和面向对象的封装有点类似,不过在,前期学习,拿来主义就可以了,以后再讨论其价值。

2-5 什么是多态

       多态仅仅是一种思想,在代码上不像封装那样有非常鲜明的体现,在java中,最好理解的多态的体现就是overload。

多态的定义:指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采 用多种不同的行为方式。(发送消息就是函数调用)。

多态存在的三个必要条件

一、要有继承;

二、要有重写;

三、父类引用指向子类对象。

多态体现出的意义我感觉就是希望代码能像人一样对不同的刺激做出最合适的反应。

2-6 抽象和接口

       抽象类本质是对多个类中的具有共同特征的抽象,而抽象方法是对类中的具有共同特征的方法的抽象。他们的目的都是提高代码的复用率,因此抽象方法是没有实现的,而抽象类中不但有抽象方法,也有实现了的方法。

       接口和抽象类有比较明显的区别,接口中有且只允许有未实现的方法,接口中不能像抽象类那样有自己的属性,因此java中定义接口用的是interface,因为一个类中有属性和方法才是有真正意义的,在继承抽象类和实现接口时,要完成父类和接口中所有未实现的方法,否则,子类要定义为抽象类,正所谓父债子偿,否则孙子来偿还。

3.面向对象和面向过程的比较


       最能体现面向过程思想的就是c语言,而如今的面向对象语言则是占据了绝大部分的江山,由此可看出面向对象的魅力,这两种思想的关系可以看成是一个X,当问题的规模比较小时,用面向过程的思想是效率更高的,而当问题达到一定的复杂度时,可以这样说,用面向过程是无法亦或很难来实现的,所以面向对象在学习时是比较难的,而只有使用面向对象写过大的项目之后,才可以说对面向对象有一定的认识。可见面向对象是多么的厉害和富有魅力的。

你可能感兴趣的:(Java基础知识要点总结)