黑马程序员技术交流社区
标题: 面向对象如何理解 [打印本页]
作者: 以梦为马123 时间: 2015-7-15 23:01
标题: 面向对象如何理解
面向对象:将功能封装进对象,强调具备了功能的对象。
//具体是否可以这么理解,定义一个类相当于前面定义中提到了建立一个对象用于封装,在类中定义一些成员变量或者是成员函数,相当于将功能进行定义并封装进对象。
作者: 康恒强 时间: 2015-7-15 23:12
飘过,飘过,,,
作者: 灰灰 时间: 2015-7-16 19:08
面向对象好难理解....
作者: 白面馅包子 时间: 2015-7-16 19:13
面向对象
比如你想要吃个面包 那你得 买面 发酵 进烤箱 端出来 在开吃 每个步骤就是一个方法 一个函数
那我们换一个方法 把这些 步骤放在一个箱子中 让这个 箱子完成我们所需的一切 我么就可以直接开吃了这就是 面向对象
在比如说,我们想要完成一个大型的项目,那这个大型的项目需要几个功能共同实现才能完成,那每一个功能就相当于一个函数(具有特定功能的独立的小程序),那我们现在换一个方法,我们先将这几个函数封装在一个对象中,那这个对象就可以完车这个项目了,以对象为基础,用对象完成各项操作,那这里面强调的是对象,那这就是面向对象
作者: 以梦为码 时间: 2015-7-16 19:16
从执行者转变为调用者。比如洗碗机,自己洗就是执行者,用洗碗机洗就是调用者。
作者: 白马程序猿 时间: 2015-7-16 19:47
面向对象是一个贯穿一生的概念,不用指望学了一遍就理解了
本人刚刚学完,听课觉得都懂,一做题,一写代码就傻了。慢慢理解吧
作者: 官沛 时间: 2015-7-16 20:02
我觉得可以用教育行业的例子来理解。
面向对象思想是相对于面向过程的思想来说的。面向过程关注过程本身,关注操作的细节;而面向对象强调的是对象,关注具备一定功能的对象。用面向对象的思想处理问题,首先想的是找一个可以胜任处理此问题的角色——对象,如果没有,那就创建一个合适的对象去处理。
培训教育机构就是很好的例子,比如黑马如果目标是推动中国it技术的发展,如果以面向过程为思路的话,那就是让黑马所有的老师自己去处理所有it公司遇到技术问题,而面向对象的思想是:先找对象,就是合格it人才,但发现不够;所以就创建对象,要定义很多功能和方法,让对象能去处理it问题,这其实就是培训教育的过程,毕业后再去各个公司处理问题。
所以可以看出,面向过程其实是面向对象的基础,而面向对象更符合人们的生活经验,把复杂问题简单化,把事情的执行者变成指挥者。
作者: lsunshine 时间: 2015-7-16 22:17
面向对象是一种思想 猫 狗 是属于一动物类的吧; 动物是一个抽象的概念 没有具体指是哪个动物,所以动物就是一个类, 猫 狗 就把 动物这个抽象的概念具体化了 所以 猫,狗就是对象.:victory:
作者: 发抖的_DtYJA 时间: 2015-7-16 22:23
package com.java;
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
public class ReflectDemo2 {
/**
* @author YCY
*/
public static void main(String[] args) {
Class testClass;
try {
// 拿到Test字节码文件
testClass = Class.forName("com.java.Test");
// 获取Test包
Package p = testClass.getPackage();
// 创建Test对象
Test test1 = (Test) testClass.newInstance();
// 调用Test对象中的public方法
test1.method1();
test1.method3(1, '你');
// 获取Test全部的构造方法
Constructor<?> cons[] = testClass.getConstructors();
// 遍历数组,打印出Test所有的构造方法
for (int i = 0; i < cons.length; i++) {
System.out.println(cons[i]);
}
// 通过有参构造方法创建Test对象
Test test2 = (Test) cons[0].newInstance(1, "你好", '吗');
// 获取Test类继承的父类以及实现的接口
Class<?> parents = testClass.getSuperclass();
// 打印出Test类的父类名称
System.out.println(parents.getName());
// 获取Test类的所有实现的接口
Class<?>[] interfaces = testClass.getInterfaces();
for (int i = 0; i < interfaces.length; i++) {
System.out.println(interfaces[i].getName());
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
}
}
作者: Sparky 时间: 2015-7-16 22:27
这个就不要水了吧:o
作者: n361204357 时间: 2015-7-16 22:33
一百个人回答有一百个例子,类的概念是什么,类是描述事物属性和行为的,什么是属性,人的年龄和姓名都是属性,人吃饭,睡觉,这是行为。类描述出来的东西,只是描述这个事物有什么。而对象就是类的举出来的例子。
这么说吧。什么叫人类,人类是所有人种统称,这叫类,通俗的说就是一类人,举些,吹牛皮的这类人,装X的这一类人,黑种人,白种人,举出来的例子就是对象。
类是描述事物的抽象,对象是类的实例。
面向对象就是不需要知道对象的内部结构,运行方式,操作过程等等,你知需要知道他有什么功能,你就调用他的功能即可。
以上是我个人理解,不到之处还望见谅。
作者: Claw 时间: 2015-7-16 22:34
不会难理解吧。
其实对象,你当作函数去理解,也差不多。
作者: 15917846944 时间: 2015-7-16 22:37
手机就是对象,而你把手机的打电话功能调用了,但是至于为什么电话能打电话,你不用管,你直接调用功能即可,这叫面向对象,功能封装!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |