6、面向对象
来源:互联网 发布:视频动态截图软件 编辑:程序博客网 时间:2024/05/16 01:45
六、面向对象
1、系统结构图(xmind)
2、tips
——1.理解面向对象
乔布斯是这样理解面向对象的:
对象就像人一样,也是活生生的生命。他们有知识,知道怎么完成任务;他们有记忆,可以把发生的事情记下来。而你和他们的互动并不是低层次的,你是与他们在一个高度抽象的层面上互动,就像我们现在的对话一样。
我举个例子来说明。如果我是一个“洗衣”对象,你可以把脏衣服给我,然后告诉我说:“请帮我把这些衣服洗了吧!”而我恰好知道旧金山最好的洗衣房在哪,并且我会说英语,兜里也有美元。于是我出门打了一辆出租车,告诉司机带我去位于旧金山的洗衣房。我到了那里洗好衣服之后,又坐车回到这里。我把洗好的衣服交还给你,说:“你的衣服已经洗好了。”
你并不知道我是怎么做到的。你不知道哪里有洗衣店,也可能只会说法语,或者是兜里没钱,连车都打不了。但是我知道怎么完成这项任务,而你不需要知道任何细节。所有的这些复杂流程都隐藏在我的内部,而我们之间可以高度抽象地互动。这就是对象。他们把复杂过程封装在内部,而对外呈现的接口是高层次的,抽象的。
——2、成员变量和局部变量
——3.匿名对象
栗:
class Car{String color = "red";int num = 4;public static void run(){System.out.println("function run is running!" );}}class CarDemo{public static void main(String[] args){//对对象方法仅进行一次调用时,就可以使用匿名对象new Car().run();//匿名对象可以作为实际参数进行传递show(new Car());}public static void show(Car c){c. num = 3;c. color = "black" ;System.out.println("function show is running!" );System.out.println(c.num + "..." + c. color);}}
运行结果:
——4.封装的表现形式之一——private(私有)
——5.构造函数
1.细节:当一个类没有定义构造函数时,那么系统就会默认给该类加入一个空参数的构造函数。当在类中自定义了构造函数后,默认的构造函数就没有了。
2、构造函数和一般函数在写法上有不同。
在运行上也有不同:
构造函数式在对象一建立就运行,给对象初始化。而一般方法是对象调用才执行,给是对象添加对象具备的功能。一个对象建立,构造函数只运行一次。而一般方法可以被该对象调用多次。
3、什么时候定义构造函数?
当分析事物时,该事物存在具备一些特性或者行为,那么将这些内容定义在构造函数中。
4、构造代码块
作用:给对象进行初始化。对象一建立就运行,而且优先于构造函数运行。
和构造函数的区别:
构造代码块是给所以对象进行初始化。
而构造函数是给对应的对象初始化。
构造代码块中定义的是不同对象共性的初始化内容。
class Person { private String name; private int age; Person(int age)//局部变量时age,成员变量也是age { this.age = age;//this能够很好区分 } Person(String name) { this.name = name;//这里用this表示调用构造方法的对象 } Person(String name,int age) { this.name = name; this.age = age; } public void speak() { System.out.println("name="+name+"...age="+age); show(); } public void show() { System.out.println(this.name); } }
- 面向对象基础6
- php面向对象6
- php面向对象6
- Chapter 6面向对象
- java面向对象6
- 6、面向对象
- 面向对象6
- 面向对象6
- 面向对象(6)
- 面向对象6
- 6-Python-面向对象
- 面向对象6---抽象
- 6、面向对象之封装
- php 面向对象 013.7.6
- 6-面向对象的理解
- 面向对象6大原则
- 学习笔记6-面向对象
- 6、面向对象之封装
- php
- 动态规划-求二项式系数
- 续 Codeforces 596 C Wilbur and Points
- 条件变量 condition variable
- 文章标题
- 6、面向对象
- java.lang.NoClassDefFoundError: org/eclipse/jetty/util/thread/QueuedThreadPool$1
- Python数据类型-序列(元组)
- misc_register、 register_chrdev 的区别总结
- 第11讲-算术运算符与算术表达式-练习
- 机器学习-非监督学习(Unüberwachte Lernverfahren)+大型数据库:Clustering-2
- HDU 2063 过山车
- [代码] 根据homework\homework.html文件,返回<学生ID,交作业顺序>的Map
- 内部类、匿名内部类、异常及异常处理