一.面向对象编程 (0oP Object Oriented Programming )
1、面向对象与面向过程?
面向过程:强调的是功能行为
面向对象:将功能行为封装进对象,强调具备了功能行为的对象
【案例】把大象装冰箱一共分几步?
1.打开冰箱 2.把大象装进(存储大象)3.关闭冰箱 //面向过程
人开门:
人{
推拉(门){
门.打开()
}
}
门
{
打开(){}
}
-----------------
如何运用面向对象思想思考上述问题?
人{
拉(冰箱){
冰箱.打开()
}
指挥(大象){
大象.进入()
}
推(冰箱){
冰箱.关闭()
}
}
冰箱{
打开(){}
存储(){}
关闭(){}
}
大象{
进入(){}
}
//2.面向对象更加注重前期对类的设计:属性&方法 优点:有很好的通用性和拓展性
3.将面向对象思想融入到java 代码中 将现实生活中一类事物的共性内容,进行提取,抽象成相应的 java 类,
使用 java 中的类对其进行描达
例如:现实生活中的事物:张三李四王五
共性内容:姓名 年龄 性別 吃饭的功能 睡觉的功能
4.类是抽象的,类描述的是现实生活中的“一类”事物,若需要具体到某“一个”事物,则需要关键字:new
5.类和对象:
类:是抽象的,描述的是“一类”事物;类似于汽车设计图
对象:是实实在在的个体;类似于一辆辆的汽车
class OOPTest
{
public static void main(String[] args)
{//创建person类的对象
Person p1=new Person();
//给对象的属性赋值
p1.name="张三";
p1.age=20;
p1.gender='男';
//获取属性值
String n=p1.name;
System.out.println("姓名:"+n+" 年龄:"+p1.age +" 性別:"+ p1.gender);
//调用对象的方法
p1.eat();
p1.sleep();
Person p2=new Person();
p2.name="李四";
p2.age=18;
p2.gender='女';
String m=p2.name;
System.out.println("姓名:"+m+" 年龄:"+p2.age +" 性別:"+ p2.gender);
p2.eat();
p2.sleep();
}
}
class Person{//抽象的
//属性-变量
String name;
int age;
char gender;
//行为-方法
public void eat(){
System.out.println(name+"吃饭");
}
public void sleep(){
System.out.println("哑觉");
}
}