java面向对象(object oriented)
面向过程解决问题?
*以c语言为例的面向过程解决问题的方法:
第一步….
第二部….
…….
完成得到结果
面向对象解决问题?
*在java中 找对象,有了对象,可以直接调用所有关于这个对象的解决问题的方法,这个方法被封装在类中,对于我们来说是“透明”的。
[例如]
OO思想: 想吃煎饼果子怎么办?
a.去找卖煎饼果子的阿姨
b.给钱
c.阿姨做煎饼果子—————-“透明的步骤”
d.拿到,可以吃了
在此过程中的c步骤,对于我们来说不需要知道,体现了面向对象的一大特征:封装(encapsulation)。
. 理解面向对象思想特点:
* a:是一种更符合我们思想习惯的思想
* b:可以将复杂的事情简单化
* c:将我们从执行者变成了指挥者
- [实例]
- 面向对象(学生类)
- A:学生事物
- B:学生类
- 属性:姓名,年龄,性别
- 行为:学习,睡觉
关于学生类思考:
在一个班级中,学生是一个集合,他们有着自己的姓名、桌子、书本,这些就是学生共有的特点,称作为学生类所必有的属性。同时,作为学生需要写作业、听老师讲课、睡觉,这些是同学都有的动作或状态,可以称作是学生类所必有的方法。
学生中有张三、李四...等等,为了方便管理,假设拟定一个学生实体,给他一个代号a,他有着学生的所有属性,能够做到所有学生可以做的事,称他为学生类的一个对象。
【代码实现】
定义一个类:
class Student{
String name; //属性
int age; //属性
public void sleep(){
//学生睡觉的动作
System.out.println("睡觉");
}
public void study(){
//学生学习的动作
System.out.println("学习");
}
public void setName(String name){
//起名字的方法
this.name =name;
}
public void setAge(int age){
//登记年龄的方法
this.age = age;
}
public String getName(){
//得到该学生姓名的方法
return name;
}
public int getAge(){
//得到该学生年龄的方法
return age;
}
如何使用一个对象:
public static void main(String[] args) { //main函数,程序的入口
Student a = new Student();
// 新建一个学生类的对象,给他一个代号 a
a.sleep(); // a 代表的学生睡觉
a.study(); // a 代表的学生学习
a.setName("李四"); // 给 a 起了名字
a.setAge(12); //给 a 登记年龄12岁
int age = stu.getAge(); // 得到年龄
String name = stu.getName(); //得到姓名
System.out.println("小a这个学生的名字叫"+name);
// 输出 a 学生的名字
System.out.println("小a这个学生的年龄是"+age);
//输出 a 学生的年龄
}
总结:
- 使用面向对象的方法解决问题就是不断的创建对象,使用对象,指挥对象做事情。
- 希望通过简短的描述,对初学者理解面向对象有一定帮助。