码迷,mamicode.com
首页 > 编程语言 > 详细

Java面试宝典

时间:2014-07-26 00:36:46      阅读:265      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   java   color   os   数据   art   

①1.抽象:把现实中复杂的问题抽象成简单的问题一般来说是对象。抽象包括两个部分一个是数据抽象,一个是过程抽象。例如:一个人定义为Person类,人有的属性是年龄(age),性别(gender),这些抽象出来是数据抽象。人的一些吃饭,睡觉的行为,抽象为方法,为过程抽象。

2.继承:继承是从已有类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能拓展新的行为。新的类为原始类的派生类(子类),原始类称为(父类)。

3.封装:封装是把过程和数据包围起来,对数据的访问只能通过已经定义的接口。面向对象的概念始于这个基本概念,即现实世界被描绘成完全自治,封装的对象。这些对象通过一个受保护的接口访问其它对象。

bubuko.com,布布扣
 1  1 封装的简单例子:
 2  2 先来个例子看看;
 3  3 public class Man
 4  4 {
 5  5 //对属性的封装,一个人的姓名,年龄,妻子都是这个对象(人)的私有属性
 6  6 private String name;
 7  7 private int age;
 8  8 private Woman wife;
 9  9 //对该人对外界提供方法的封装,可以设定妻子,姓名,年龄也可以获得男人的姓名和年龄
10 10 public void setWife(Woman wife)
11 11 {
12 12 this.wife = wife;
13 13 }
14 14 public String getName()
15 15 {
16 16 return name;
17 17 }
18 18 public void setName(String name)
19 19 {
20 20 this.name = name;
21 21 }
22 22 public int getAge()
23 23 {
24 24 return age;
25 25 }
26 26 public void setAge(int age)
27 27 {
28 28 this.age = age;
29 29 }
30 30 }
31 31 public class Woman
32 32 {
33 33 //属性封装
34 34 private String name;
35 35 private int age;
36 36 private Man husband;
37 37 //方法封装
38 38 public String getName()
39 39 {
40 40 return name;
41 41 }
42 42 public void setName(String name)
43 43 {
44 44 this.name = name;
45 45 }
46 46 public int getAge()
47 47 {
48 48 return age;
49 49 }
50 50 public void setAge(int age)
51 51 {
52 52 this.age = age;
53 53 }
54 54 public Man getHusband()
55 55 {
56 56 return husband;
57 57 }
58 58 public void setHusband(Man husband)
59 59 {
60 60 this.husband = husband;
61 61 }
62 62 }
63 63 /**
64 64 * 仔细看就会发现,Man类没有提供getWife的方法,这是因为男人不想让自己的妻子被外界访问,
65 65 *
66 66 * 直接下来呢,就是封装可以把一个对象的属性私有,而提供一些可以被外界访问的属性的方法,
67 67 *
68 68 * 比如说,name属性,Man和Woman类都有相应的get和set方法,外界都可以通过这些方法访问和修改
69 69 *
70 70 * 同时对一些改对象不想让外界访问的属性,就不提供其方法,比如说Man的wife属性,就没有get方法
71 71 *
72 72 * 外界是不能带到Man类的wife属性的
73 73 *
74 74 */
75 75 上面那例子可能没有突出封装的好处,下面来个超简单的表达下:
76 76 public class Show
77 77 {
78 78 public static void show(String str)
79 79 {
80 80 System.out.println(str);
81 81 }
82 82 }
83 83 上面就是对 System.out.println();的封装。
84 84 调用的时候 :
85 85 public class Use
86 86 {
87 87 public static void main(String[] args)
88 88 {
89 89 Show.show("封装");
90 90 }
91 91 }
92 92 这样用的时候就不用使:System.out.println("封装");
View Code

4.多态:是指不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名的问题。

多态有两种表现形式:重载和覆盖

重载(overload),是发生在同一类中。与父类子类、继承毫无关系。

标识一个函数出了函数名外,还有函数的参数(个数和类型),也就是说,一个类中可以有两个或多个函数,叫同一个名字而他们的参数不同。他们之间号位关系,是不同的函数,只是可能他们的功能类似,所以命名才一样,增加可读性,仅此而已。

覆盖(override),是放声在子类中,也就是说必须有继承的情况下才有覆盖发生。我们知道继承一个类,也就有了父类的全部方法,如果你感到哪个方法不爽,功能要变,就把这个函数在子类中重新实现一遍。这样在调用这个方法的时候,就是执行子类的中的过程了。父类中的函数就被覆盖了。覆盖的时候函数名和参数要和父类中完全一样,否则就是两个函数,不能覆盖,毫无关系。

2、String 是基本数据类型么?

不是,基本数据类型包括,int;long;byte;boolean;short;char,float,double。

3、int 和 Integer 有什么区别


Java面试宝典,布布扣,bubuko.com

Java面试宝典

标签:style   blog   http   java   color   os   数据   art   

原文地址:http://www.cnblogs.com/janwillem/p/3868277.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!