1、面向对象的特征有哪些方面?
答:
(1)抽象,抽象是将一类对象的共同特征提取出来构造类的过程,包括数据抽象和行为抽象两个方面。抽象只关注对象有哪些属性和行为,并不关注这些行为的具体实现细节。
(2)继承,继承是从已有类得到继承信息创建新类的过程。提供继承信息的类称为父类(超类,基类),得到继承信息的类被称为子类(派生类)。继承让变化中的软件系统有了一定的延续性,同时继承也是封装程序中可变因素的重要手段。
(3)封装,通常认为封装就是把数据和操作数据的方法绑定起来,对数据的访问只能通过已定义的接口。面向对象的本质就是将现实世界描绘成一系列完成自治,封闭的对象。
我们编写的一个类就是对数据和数据操作的封装。类中的方法就是对实现细节的封装。封装就是隐藏一切可以隐藏的东西,只想外界提供简单的编程接口。
(4)多态,多态性是指允许不同的子类型的对象对统一消息做出不同的响应。简单的说就是用同样的对象引用调用同样的方法但是做了不同的事情。
多态性分为编译时多态性和运行时多态性。如果将对象的方法视为对象对外界提供的服务,那么运行时多态性可以理解为:当A系统访问B系统提供的服务时,B系统有多种方式提供服务,但这一切对于A系统来说是透明的。方法重载(overload)实现的是编译时的多态性,而方法的重写(override)实现的是运行时的多态性。
运行时的多态是面向对象最精髓的东西,要实现多态需要做两件事:1.方法重写(子类继承父类并重写父类已有或抽象的方法)。2.对象造型(用父类型引用子类型的对象,这样同样引用调用同样的方法就会根据子类对象的不同而表现楚不同的行为)。
2、访问修饰符public,private,protected,以及不写是的区别?
答:作用域 当前类 同包 子类 其他
public √ √ √ √
protected √ √ √ ×
default √ √ × ×
private √ × × ×
(1)类的成员不写访问修饰符时相当于default。默认对于同一个包中的其他类相当于公开(public),对于不是同一个包的其他类相当于私有(private)。
(2)protected对子类相当于公开(public),对于其他包没有父子类关系的类相当于私有(private)。
(3)String是基本数据类型吗?
不是。java基本数据类型有8种:byte,short,int,long,float,double,char,boolean.除了8种基本数据类型和枚举类型,剩下的都是引用数据类型。
3、float f = 3.4;是否正确?
答:不正确。3.4是双精度数,将双精度型(double)赋值给浮点型(float)属于向下转型会造成精度损失,因此需要强制类型转换 float f = (float)3.4;或者写成float f = 2.4f;
4、short s1=1; s1 = s1+1;有错吗?short s1=1;s1+=1;有错吗?
答:对于short s1=1;s1=s1+1;由于1是 int型,s1+1也是int型,需要强制转换类型才能赋值给short型。
short s1=1;s1+=1;相当于s1=(short)s1+1;其中有隐含的强制类型转换,可以正确编译。
5、java有没有goto?
答:goto是java中的保留字,在目前版本中的java没有使用。
6、http://7.int和Integer类型的区别?
答:java是一个近乎纯洁的面向对象编程语言,但是为了编程的方便还是引入了不是对象的基本数据类型,为了能将这些基本数据类型进行对象操作,java为每一个基本数据类型都引入了对应的包装类型,int的包装类型就是Integer,从JDK1.5开始引入了自动装箱/拆箱机制,使两者可以相互转换。