标签:style blog http java color os 数据 art
①1.抽象:把现实中复杂的问题抽象成简单的问题一般来说是对象。抽象包括两个部分一个是数据抽象,一个是过程抽象。例如:一个人定义为Person类,人有的属性是年龄(age),性别(gender),这些抽象出来是数据抽象。人的一些吃饭,睡觉的行为,抽象为方法,为过程抽象。
2.继承:继承是从已有类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能拓展新的行为。新的类为原始类的派生类(子类),原始类称为(父类)。
3.封装:封装是把过程和数据包围起来,对数据的访问只能通过已经定义的接口。面向对象的概念始于这个基本概念,即现实世界被描绘成完全自治,封装的对象。这些对象通过一个受保护的接口访问其它对象。
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("封装");
4.多态:是指不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名的问题。
多态有两种表现形式:重载和覆盖
重载(overload),是发生在同一类中。与父类子类、继承毫无关系。
标识一个函数出了函数名外,还有函数的参数(个数和类型),也就是说,一个类中可以有两个或多个函数,叫同一个名字而他们的参数不同。他们之间号位关系,是不同的函数,只是可能他们的功能类似,所以命名才一样,增加可读性,仅此而已。
覆盖(override),是放声在子类中,也就是说必须有继承的情况下才有覆盖发生。我们知道继承一个类,也就有了父类的全部方法,如果你感到哪个方法不爽,功能要变,就把这个函数在子类中重新实现一遍。这样在调用这个方法的时候,就是执行子类的中的过程了。父类中的函数就被覆盖了。覆盖的时候函数名和参数要和父类中完全一样,否则就是两个函数,不能覆盖,毫无关系。
2、String 是基本数据类型么?
不是,基本数据类型包括,int;long;byte;boolean;short;char,float,double。
3、int 和 Integer 有什么区别
标签:style blog http java color os 数据 art
原文地址:http://www.cnblogs.com/janwillem/p/3868277.html