Java 25天基础-DAY 05-面向对象

简介: java面向对象
面向对象:
  1. 面向对象是相对面向过程而言;
  2. 面向对象和面向过程都是一种思想;
  3. 面向过程,强调的是功能行为
  4. 面向对象,将功能封装进对象,强调具备了功能的对象;
  5. 面向对象是基于面向过程的。
  93a304a44fa71d720d092bc545620b09e969d894

 
面向过程和面向对象:
面向过程的角色是执行者的角度。
面向对象的角色是指挥者的角度。
 
面向对象,是一种变成的思想,能把复杂的问题简单话,把执行者,变成指挥者。
思想比较抽象,可以举例说明。
事例:
  1. 电脑的窗口中有最大化,最小化,关闭;将这三个功能封装到窗口中就是面向对象的应用。
  2. 人开门:开的功能是门自己内部实现的,如折页等是如何工作的,门就成为对象。
  3. 人开车:车的功能是又内部实现的,如发动机如何工作,车就成为对象。
  4. 笔记本电脑:电脑只给了一些外部的接口提供给人使用,至于内部的功能对于使用者则不必了解。笔记本电脑就是对象。
  5. 买电脑:对于不懂电脑的人来说他只要找个懂电脑的人帮忙买就OK了,他只需要得到结果,至于懂电脑的人功能则不必了解,懂电脑的人就是对象,封装了懂电脑的功能。
  6. 老板招聘:当老板招聘开发人员的时候,开发人员具备了开发的功能,公司只要使用就可以,这时受聘者变成了对象。
  7. 点菜:当你去吃饭时,跟服务员点菜,至于服务员如何记录如何跟后厨交代,则不必要管,服务员就是对象,你调用了他点菜的功能,然后服务员告诉后厨做一个XX菜,这时服务员又调用了厨师的做菜功能,厨师就是对象。
 
总之万物皆对象。
 
写程序要先面向对象,不要上来就写程序。
                  
名词提炼法:
人开门:
         开门(门)
 
                   开();
 
 
面向对象有三个特征:
         1 、封装
       2 、集成
       3 、多态
开发其实就是找对象使用,没有对象,就创建一个对象。
找对象,建立对象,使用对象,维护对象的关系。
 
类和对象的关系:
         类就是:对现实生活中事物的描述
       对象:就是这类事物,实实在在存在个体。
 
现实生活中的对象:张三,李四
想要描述:提取对象中共性内容。对具体的抽象
描述时:这些对象的共性有:姓名,年龄,性别,学习JAVA 的功能。
 
映射到Java 中,描述就是class 定义的类。
具体对象就是对应Java 在堆内存中用new 建立实体。
 
类与对象的图例 
4fde13f327b2efd27b1c77e7be55ea41474b2383

类与对象的图例
可以理解为:
类就是图纸
       汽车就是堆内存中的对象
 
匿名对象
 
封装:
       封装是指隐藏对象的属性和现实细节,仅对外提供公共访问方式
好处:
       将变化隔离
       便于使用
       提高重用性
       提高安全性
封装原则:
       将不需要对外提供的内容都隐藏起来
       把属性都隐藏,提供公共方法对其访问。


例1:
class car
{
//描述颜色
String color = "red"; //red是显示初始化值,实际对象C产生时该值为null
//描述轮胎数
int num = 6;
//运行行为
void run ()
{
System.out.println (color+"...................."+num);
}
/ /属性对应的是类中的变量,行为对应的是类中的函数(方法)
//其实定义类,就是在描述事物,就是在定义属性和行为。属性和行为共同称为类中的成员(成员包括成员变量和成员函数)
//成员变量作用于整个类中,局部变量作用与函数中或者语句中。
//在内存中的位置,成员变量在堆内存中,因为对象的存在,才存在在内存中。局部变量在栈内存中。

}




class cardemo
{
public static void main(String[] args)
{
//生产汽车,在Java中通过new操作符来完成,其实就是在堆内存产生一个实体。
car c = new car (); //c就是类类型变量。记住:类类型变量指向对象。
//需求:将已有车的颜色改成黄色,指挥该对象做使用。在Java中指挥方式是
c.color = "blue";

c.run();

car c1 = new car ();
c1.color = "black";

c1.run();
}
}

例2、左侧图单个引用指向单个对象,右侧图多个引用 指向同一个对象
7808f2c49eed070a29547d0c80583454e85bd758
例3:匿名对象

匿名对象使用方式一、
当对象的方法只调用一次时可以使用匿名对象完成,
如果对一个对象进行多个成员调用必须给这个对象起名。
匿名对象使用方式二、可以将匿名对象作为实际参数进行传递


class car2
{
public static void main(String[] args)
{
car c= new car();
c.run();
c.num =5;
new car ().run();//匿名方式。
/*匿名对象使用方式一、
当对象的方法只调用一次时可以使用匿名对象完成,
如果对一个对象进行多个成员调用必须给这个对象起名。
匿名对象使用方式二、可以将匿名对象作为实际参数进行传递
*/
car n = new car ();
show (n);
}

//匿名对象的使用方式二、
//需求:汽车修配厂,对汽车进行改装,将来的车都改成黑色,3个轮胎。

public static void show (car c) //创建一个car类型的c 这个和 int num这个参数传递一样。
{
c.num=3;
c.color="black";
c.run();
}

}

方式一画图解释:
0b974af5f298cd8b86d979038539f6b040e64562

方式二画图解释:
d8a69b23a46b2154ec99771c569c256e39414e2a

目录
相关文章
|
1月前
|
存储 Java 数据处理
Java基础—笔记—面向对象篇
该内容是关于面向对象编程的介绍,包括类(用于定义数据和处理方法)、对象(通过类创建,存储和处理数据)的创建和使用,`this`关键字(代表调用方法的对象,用于区分成员变量和局部变量),成员变量与局部变量的区别(定义位置、初始化值、内存区域、作用域和生命周期),构造器(无返回值、与类名相同的特殊方法,用于对象创建和初始化),以及封装的概念(数据隐藏和暴露控制)和实现步骤(私有化成员变量,提供公共的setter和getter,以及构造器)。
17 0
|
6天前
|
存储 安全 Java
Java面向对象最新超详细总结版!
Java面向对象最新超详细总结版!
25 7
Java面向对象最新超详细总结版!
|
3天前
|
Java
java面向对象——包+继承+多态(一)-2
java面向对象——包+继承+多态(一)
16 3
|
3天前
|
SQL Java 编译器
java面向对象——包+继承+多态(一)-1
java面向对象——包+继承+多态(一)
16 2
|
13天前
|
存储 Java 开发工具
【Java探索之旅】用面向对象的思维构建程序世界
【Java探索之旅】用面向对象的思维构建程序世界
11 0
|
13天前
|
Java
java使用面向对象实现图书管理系统
java使用面向对象实现图书管理系统
|
13天前
|
Java
Java语言---面向对象的三大特征之继承
Java语言---面向对象的三大特征之继承
|
13天前
|
机器学习/深度学习 Java Python
Java面向对象知识体系---基础版
Java面向对象知识体系---基础版
|
18天前
|
安全 Java
Java基础&面向对象&继承&抽象类
Java基础&面向对象&继承&抽象类
|
18天前
|
Java
【Java基础】详解面向对象特性(诸如继承、重载、重写等等)
【Java基础】详解面向对象特性(诸如继承、重载、重写等等)
16 0