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

目录
相关文章
|
27天前
|
存储 缓存 Java
java基础:IO流 理论与代码示例(详解、idea设置统一utf-8编码问题)
这篇文章详细介绍了Java中的IO流,包括字符与字节的概念、编码格式、File类的使用、IO流的分类和原理,以及通过代码示例展示了各种流的应用,如节点流、处理流、缓存流、转换流、对象流和随机访问文件流。同时,还探讨了IDEA中设置项目编码格式的方法,以及如何处理序列化和反序列化问题。
58 1
java基础:IO流 理论与代码示例(详解、idea设置统一utf-8编码问题)
|
9天前
|
Java 关系型数据库 数据库
面向对象设计原则在Java中的实现与案例分析
【10月更文挑战第25天】本文通过Java语言的具体实现和案例分析,详细介绍了面向对象设计的五大核心原则:单一职责原则、开闭原则、里氏替换原则、接口隔离原则和依赖倒置原则。这些原则帮助开发者构建更加灵活、可维护和可扩展的系统,不仅适用于Java,也适用于其他面向对象编程语言。
9 2
|
2月前
|
Java 编译器
封装,继承,多态【Java面向对象知识回顾①】
本文回顾了Java面向对象编程的三大特性:封装、继承和多态。封装通过将数据和方法结合在类中并隐藏实现细节来保护对象状态,继承允许新类扩展现有类的功能,而多态则允许对象在不同情况下表现出不同的行为,这些特性共同提高了代码的复用性、扩展性和灵活性。
封装,继承,多态【Java面向对象知识回顾①】
|
2月前
|
安全 Java API
【Java面试题汇总】Java基础篇——String+集合+泛型+IO+异常+反射(2023版)
String常量池、String、StringBuffer、Stringbuilder有什么区别、List与Set的区别、ArrayList和LinkedList的区别、HashMap底层原理、ConcurrentHashMap、HashMap和Hashtable的区别、泛型擦除、ABA问题、IO多路复用、BIO、NIO、O、异常处理机制、反射
【Java面试题汇总】Java基础篇——String+集合+泛型+IO+异常+反射(2023版)
|
2月前
|
Java
java中面向过程和面向对象区别?
java中面向过程和面向对象区别?
33 4
|
2月前
|
Java
接口和抽象类【Java面向对象知识回顾②】
本文讨论了Java中抽象类和接口的概念与区别。抽象类是不能被实例化的类,可以包含抽象和非抽象方法,常用作其他类的基类。接口是一种纯抽象类型,只包含抽象方法和常量,不能被实例化,且实现接口的类必须实现接口中定义的所有方法。文章还比较了抽象类和接口在实现方式、方法类型、成员变量、构造方法和访问修饰符等方面的不同,并探讨了它们的使用场景。
接口和抽象类【Java面向对象知识回顾②】
|
27天前
|
存储 Java 程序员
Java基础-面向对象
Java基础-面向对象
13 0
|
2月前
|
安全 Java Go
面向对象程序设计语言:Java
Java语言语法和C语言和C++语言很接近,很容易学习和使用,Java丢弃了C++中很少使用的、很难理解的、令人迷惑的特性,Java语言不使用指针,而是引用,并提供了自动分配和回收内存空间,使得程序员不必为内存管理而担忧
54 2
|
3月前
|
Java 数据处理 开发者
【Java基础面试十二】、说一说你对面向对象的理解
这篇文章阐述了面向对象是一种以类和对象为基础,通过封装、继承和多态等概念来模拟现实世界中的事物及其相互关系的程序设计方法,它强调以事物为中心进行思考和系统构造,与结构化程序设计相比,更符合人类的自然思维方式。
【Java基础面试十二】、说一说你对面向对象的理解
|
3月前
|
Java
【Java基础面试十三】、面向对象的三大特征是什么?
这篇文章介绍了面向对象程序设计的三大基本特征:封装、继承和多态,其中封装隐藏对象实现细节,继承实现软件复用,多态允许子类对象表现出不同的行为特征。
【Java基础面试十三】、面向对象的三大特征是什么?