------- android培训、java培训、期待与您交流! ----------
面向对象
1 面向对象
在Think in Java中,面向对象的优点是:
面向对象编程(OOP)具有多方面的吸引力。对管理人员,它实现了更快和更廉价的
开发与维护过程。对分析与设计人员,建模处理变得更加简单,能生成清晰、易于维护
的设计方案。对程序员,对象模型显得如此高雅和浅显。此外,面向对象工具以及库的
巨大威力使编程成为一项更使人愉悦的任务。
2 面向对象的概念
2.1理解面向对象
面向对象是相对面向过程而言
面向对象和面向过程都是一种思想
面向过程
强调的是功能行为
面向对象
将功能封装进对象,强调具备了功能的对象。
面向对象是基于面向过程的。
2.2 面向对象的特点
是一种符合人们思考习惯的思想
可以将复杂的事情简单化
将程序员从执行者转换成了指挥者
完成需求时:
先要去找具有所需的功能的对象来用。
如果该对象不存在,那么创建一个具有所需功能的对象。
这样简化开发并提高复用。
2.3面向对象的开发,设计,特征
开发的过程:其实就是不断的创建对象,使用对象,指挥对象做事情。
设计的过程:其实就是在管理和维护对象之间的关系。
面向对象的特征:
封装(encapsulation)
继承(inheritance)
多态(polymorphism)
3 类与对象
使用计算机语言就是不断的在描述现实生活中的事物。
java中描述事物通过类的形式体现,类是具体事物的抽象,概念上的定义。
对象即是该类事物实实在在存在的个体。
3.1类与对象关系图
对于同一类事物可以抽取它们的共性的内容,定义在类中。
如生活中的汽车,每一台车都有轮胎数和颜色。
那么在通过java描述汽车这类事物时,就可以将这两个共性属性作为类中的属性进行定义。
通过该类建立的每一个汽车实体都具有该属性,并可以有对象特有的属性值。
现实生活中的对象:张三 李四。
想要描述:提取对象中共性内容。对具体的抽象。
描述时:这些对象的共性有:姓名,年龄,性别,学习java功能。
映射到java中,描述就是class定义的类。
具体对象就是对应java在堆内存中用new建立实体。
类就是:对现实生活中事物的描述。
对象:就是这类事物,实实在在存在个体。
3.2 类第定义
生活中描述事物无非就是描述事物的属性和行为。
如:人有身高,体重等属性,有说话,打球等行为。
Java中用类class来描述事物也是如此
属性:对应类中的成员变量。
行为:对应类中的成员函数。
定义类其实在定义类中的成员(成员变量和成员函数)。
3.3成员变量与局部变量的区别
成员变量:
成员变量定义在类中,在整个类中都可以被访问。 成员变量随着对象的建立而建立,存在于对象所在的堆内存中。 成员变量有默认初始化值。
局部变量:
局部变量只定义在局部范围内,如:函数内,语句内等。 局部变量存在于栈内存中。 作用的范围结束,变量空间会自动释放。 局部变量没有默认初始化值。
3.4创建对象,使用对象
class Car//对Car这类事物进行描述
{
String color = "red";
int num = 4;
void show()
{
System.out.println("color="+color+"..num="+num);
}
}
class CarDemo
{
public static void main(String[] args)
{
Car c = new Car();//建立对象
c.color = "black";//对对象的属性进行修改
c.show();//使用对象的功能。
}
}
3.5对象的内存结构
只要是用new操作符定义的实体就在会堆内存中开辟一个新的空间。
并每一个对象中都有一份属于自己的属性。
通过 对象.对象成员 的方式操作对象中的成员,
对其中一个对象的成员进行了修改。和另一个对象没有关系。
3.6 匿名对象
匿名对象是对象的简化形式
匿名对象两种使用情况
当对对象方法仅进行一次调用的时
匿名对象可以作为实际参数进行传递
class Car
{
//描述颜色
String color = "红色";
//描述轮胎数
int num = 4;
//运行行为。
void run()
{
System.out.println(color+".."+num);
}
}
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";
c.run();
}
}
4 封装
面向对象有三个特征:封装,继承和多态,这里只介绍封装,继承和多态在后面学习。
封装:是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。
好处:
将变化隔离。
便于使用。
提高重用性。
提高安全性。
封装原则:
将不需要对外提供的内容都隐藏起来。
把属性都隐藏,提供公共方法对其访问。
------- android培训、java培训、期待与您交流! ----------
- 大小: 12.5 KB
- 大小: 8.5 KB
分享到:
相关推荐
黑马程序员_毕向东_Java基础视频教程第05天-01-面向对象(概述).avi
1、 面向对象、跨平台性、健壮性、安全性、可移植性、多线程性、动态性等。 2、 JRE(Java Runtime Environment,Java 运行时环境),它相当于操作系统部分,提供了 Java 程序运 行时所需要的基本条件和许多 Java ...
黑马程序员 - Java基础教学 - 05 - 面向对象(1).doc
含面向对象,异常处理和常用类,线程技术,集合框架,IO操作,网络编程,文件操作,反射机制,
黑马程序员 - Java基础教学 - 08 - 面向对象(4)-多态.doc
传智播客_Java培训_毕向东_Java基础[03-面向对象]系黑马程序员_毕向东_Java基础视频教程
编程就是让计算机为解决某个问题而使用某种程序设计语言编写程序代码,并最终得到结果的过程。 Java是SUN(Stanford University Network,斯坦福大学网络...是简单易学,完全面向对象,安全可靠,与平台无关的编程语言
黑马程序员 - Java基础教学 - 06 - 面向对象(2) - 关于静态static的那些事.doc
在下载和比较了大量同类书籍后不得不承认孙卫琴老师的这本书循序渐进由浅入深是最好的Java入门教程,同时它的...本资源包含《Java面向对象编程》的电子书,实例源代码,课后题答案等可以说是当前该书最全的资源了。。。
精选12种与多线程和并发处理相关的设计模式 264张图表 + 300段Java示例程序 = 轻松学习多线程编程 日本经典多线程入门书,原版长销11年! 本书适合以下读者阅读 a....b.对Java编程感兴趣的人 ...对面向对象开发感兴趣的人
观看黑马程序员Java零基础视频教学,从60P方法开始总结的知识集合,请使用Xmind打开,如果需要学习请配合视频打开:https://www.bilibili.com/video/BV17F411T7Ao
第1章 Java开发入门一.填空题1. 面向对象,SUN 2. JavaSE,JavaEE,JavaME3.面向对象、跨平台性、支持多线程4. JDK5.bin
1、面向对象都有哪些特性以及你对这些特性的理解12 1、 Java 中实现多态的机制是什么 1、 Java 中异常分为哪些种类13 2、 调用下面的方法,得到的
精选12种与多线程和并发...对面向对象开发感兴趣的人 【电子版来自互联网,仅供预览及学习交流使用,不可用于商业用途,如有版权问题,请联系删除,支持正版,喜欢的请购买正版书籍: https://item.jd.com/12165317.html】
(1)aop:面向切面编程,扩展功能不是修改源代码实现 (2)ioc:控制反转, - 比如有一个类,在类里面有方法(不是静态的方法),调用类里面的方法,创建类的对象,使用对象调用方法,创建类对象的过程,需要new...
提供《Java基础案例教程》-教学PPT,供开发者和初学者进行学习,Java是一种高级计算机语言,它是由SUN公司(已被Oracle公司收购)于1995年5月推出的一种可以编写跨平台应用软件、完全面向对象的程序设计语言。Java...
此资源包含了用户需求说明文档...利用Spring的依赖注入和面向切面特性,hibernate的数据持久化技术、Struts的控制器实现了楼栋管理模块,房间管理模块,业主管理模块,收费管理模块,物资设备管理,管理员管理等模块。
面向对象的基础核心知识点之一,是日后学习JavaEE,JavaME的必备知识;注重基础的代码实例讲解, 让你轻松的学习Java基础知识,为以后学习铺平道路,打好基础;万丈高楼平地起,希望能帮助你!
Java是一种高性能、跨平台的面向对象编程语言。它由Sun Microsystems(现在是Oracle Corporation)的James Gosling等人在1995年推出,被设计为一种简单、健壮、可移植、多线程、动态的语言。Java的主要特点和优势...
7. 面向对象基础 8. 常用API 9. 综合项目实战 Java加强篇包括: 1. static、单例设计、继承 2. 权限修饰符、常量、枚举、抽象类 3. 多态、内部类、常用API 4. 日期与时间、日期类、包装类、正则表达式、Arrays 类、...