Java基础---面向对象

一、面向对象的理解

面向对象是Java语言区别于c语言的一个重要特点,c语言是一中面向过程的思想,而面向对象也就是相对于面向过程来说的,面向过程强调的是功能行为,面向对象强调具有功能的对象。
面向对象特点:
1、是一种符合人们思考习惯的思想。
2、可以将复杂的事情简单化。
3、将程序员从执行者转换成了指挥者
4、完成需求步骤:
  a)首先找具有所需功能的对象。
 b)如果不存在这样的对象,那么就创建一个具有所需功能的对象。
 c)这样能简化开发并且提高程序的复用性。
简单来说Java的开发过程就是不段的创建对象,使用对象,指挥对象完成所需功能,创建新对象,管理和维护已存在的对象,和处理对象之间的关系。
面向对象有封装、继承、多态三个特征。

二、类和对象

1、类和对象之间的关系
类的定义:使用计算机语言就是为了不断描述现实中的事物,而Java中描述事物通过类的形式体现,类是具体事物的抽象,概念上的定义。
生活中描述事物无非就是描述事物的属性和行为,如人的年龄、身高、跑步、讲话等。而Java描述一个人的话。就用一个类来表示。人的年龄身高等属性就用java中的变量来描述,人的行为如跑步就用java中的方法来描述。
对象就是一类事物中实实在在存在的一个个体。

上图中就定义了一个以人为对象的类,类中包含年龄属性,以及说话的功能。
而主函数中p就是类的一个具体对象,
可以通过p.属性或者方法的形式对对象进行操作。
2、成员变量和局部变量
简单来说成员变量就是定义在类中的变量。局部变量就是定义在方法或者语句中的变量。
区别:
作用范围和内存分配不一样:成员变量在整个类中都可以访问,随着对象的建立而建立存放在堆内存中,有默认的初始值。
    局部变量存在于栈内存中作用范围结束变量会被释放,并且没有默认初始值。
3、匿名对象
匿名对象是对象的简化形式。
具体来说有两种使用情况:1、当对对象方法仅进行一次调用时。2、匿名对象可以作为实际参数进行传递。
例 new Person();

三、对象的封装

什么是封装:是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。
封装的好处:将变化隔离,简化使用,提高复用性,安全
封装的原则:将不需要对外提供的内容都隐藏起来,把属性都隐藏,提供公共的访问方法。
封装的表现形式之一:private 关键字-权限修饰符,用于修饰类中的成员,私有只在本类中有效。
常用形式:如上图,将Person类中的年龄属性,私有化,对外提供共有的get、set方法对其访问,提高了数据访问的安全性。

四、构造函数

特点:函数名与类名相同,不用定义返回值类型,不可以写return语句。当函数中没有定义构造函数时,系统会给该类加一个默认的参数为空的构造函数,如果自定义了构造函数, 默认的构造函数就没有了。
作用:给对象进行初始化。构造函数式在对象一建立,就给对象初始化,一般函数是对象调用才执行,一个对象建立构造函数只运行一次,而一般函数可以调用多次。
构造函数的使用:分析事物时,该事物存在就具备一些特性或者行为,那么将这些内容定义在构造函数内。
构造代码块:也是给对象进行初始化,对象一建立就运行,而且优先于构造函数。
构造代码块和构造函数的区别:格式上不一样。构造代码块:{}。构造代码块中定义的是不同对象共性的初始化内容。
                                                         构造代码块是给所有对象进行初始化,构造函数是给对应的对象初始化。

五、this关键字

先看小程序


当定义类中的功能时,该函数内部要用到调用该函数的对象时,这时用this来表示这个对象。
只要本类功能内部用到本类对象都用this来表示这个对象。
this语句:
用于构造函数之间进行互相调用。
注:this语句只能定义在构造函数的第一行,因为初始化要先执行,一般函数不能直接调用构造函数,因为this语句不能在一般函数中,只能用在构造函数。
总结:用法一:用于区分同名变量的情况,也就是区分同名成员变量和局部变量的时候。二:用于构造函数之间调用。

六、static(静态)关键字

  static是一个修饰符,用于修饰类中的成员。当成员被静态修饰以后,就多了一个调用方式,除了可以被对象调用以外,还可以直接被类名调用。格式:类名.静态成员。
特点:随着类的加载而加载,也就是说随着类的消失而消失,生命周期长。优先于对象存在,也就是说先存在静态,在存在对象。被所有对象所共享。可以直接被类名所调用。
静态变量也叫类变量。非静态变量也叫实例变量,二者的区别:类变量随着类的加载而存在于方法区中,实例变量随着对象的建立存在于堆内存中。
静态的利与弊:利-对不同对象的共享数据进行单独空间的存放,节省空间,可以被类名直接调用。
                            敝-生命周期过长,访问出现局限性。静态虽好只能访问静态。
什么时候用静态:当对象中出现共享数据时,该数据被静态所修饰,当函数功能内部没有访问到非静态数据,那么该功能可以定义成静态的。
注:静态方法只能访问静态成员,非静态方法既可以访问静态成员也可以访问非静态成员。
静态方法中不可以定义this等关键字,因为静态优先于对象而存在。
主函数是静态的。
静态代码块:
格式:static{ 静态代码块中的语句 }
特点:随着类的加载而执行,执行一次,并优先于主函数,用于给类进行初始化。
对象的初始化过程:
1、把类名.class文件加载到内存中。
2、执行该类中的static代码块,如果有的话,给该类进行初始化。
3、在堆内存中开辟空间,分配内存地址给对象。
4、在堆内存中建立对象的特有属性,并进行默认初始化。
5、对属性进行显示初始化。
6、对对象进行构造代码块初始化。
7、对对象进行对应构造函数初始化。
8、将内存地址赋给栈内存中的对象变量。
静态的应用——文档说明书。
   每个应用程序中都共性的功能,可以将这些功能进行抽取,独立封装,以便复用。
下边以数组工具类为例,制作一个文档说明书。
程序:



在dos命令行中输入命令:javadoc -d Myhelp -author -version ArrayTool.java
Java中的doc工具就会帮我们完成说明文档的API制作。
这个就是属于我们自己的API了。

知识拓展:
主函数:
主函数是一个特殊的函数,作为程序的入口,可以被JVM调用。
主函数的定义:
public:代表着该函数的访问权限是最大的。
static:代表主函数随着类的加载就已经存在。
void: 主函数没有具体的返回值。
main:不是关键字,但是是一个特殊的单词,可以被JVM识别。
                (String [] args): 函数的参数,参数类型是一个数组,该数组中的元素是字符串,字符串类型的数组。
  args: arguments参数,唯一可以改写的地方,
主函数是固定格式呗JVM识别。

七、单例设计模式

设计模式的概念:解决某一问题最行之有效的方法。java中共有23中设计模式。
单例设计模式的作用:使一个类在内存中只存在一个对象。
程序:

单例设计模式有两种写法:



























                                                         

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Object 是 Java 中的根类,是所有类的父类。所有的 Java 类(除了八个基本类型)都继承于 Object 类,因此可以调用 Object 类的方法。例如:toString()、equals()、hashCode() 等。 ### 回答2: jmu-java-03面向对象基础-object 是一门介绍面向对象编程的基础知识的课程。面向对象编程是一种思想,它的目标是把程序中的各个元素抽象成对象,并通过对象之间的交互实现程序的功能,是现代编程语言的主流之一。在这门课程中,学生将学习到对象的定义、类的概念、封装、继承和多态等基本概念和原则。 在面向对象编程中,对象是指具有特定属性和行为的实体,例如一个人、一辆车、一本书等。对象拥有自己的状态和行为,其行为可以通过方法来实现。类是对象的模板,可以看作是一种具有相似特征和行为的对象的集合。在类中,可以定义属性、方法和构造函数等。封装是面向对象编程的一个重要原则,它通过将对象的内部状态信息封装起来,从而实现了信息的隐藏和保护。 继承是指通过继承父类的属性和方法来创建一个新的子类的机制。子类可以继承并扩展父类的行为,从而实现了代码的重用性和可维护性。多态是指不同对象对同一消息做出不同的响应的能力。多态是面向对象编程中的一种普遍机制,它可以让程序具有更好的灵活性和扩展性。 这门课程将通过理论和实践相结合的方式来教授相关知识和技能。学生将通过编写程序来巩固所学内容,并提高编程能力。本门课程是学习Java编程的基础课程,也是后续Java编程课程的前置课程。具备面向对象编程基础的学生,将更容易掌握高级Java编程知识和技能。 ### 回答3: 面向对象编程(Object-Oriented Programming, OOP)是一种编程方式,它基于对象的概念,强调对数据的封装、继承和多态等特性,从而使得程序的结构更加清晰、易于维护和扩展。 OOP中最基本的概念是对象(Object),它是程序中的一个实体,有其自身的状态(state)和行为(behavior)。在Java语言中,对象由类(Class)定义,类是一组具有相同特征和行为的对象的模板。 类通常由属性(fields)和方法(methods)组成,属性可以理解为数据单元,方法则是实现类的动作。例如,一个人(Person)类可以包含属性如姓名、年龄等,方法如呼吸、吃饭等。 封装(Encapsulation)是OOP中的重要概念之一,它指对类的属性和方法进行隐藏和保护,只能通过类提供的公共接口访问。这样能够保证程序的安全性,同时也能够减少程序的耦合度,便于维护和扩展。在Java语言中,可以通过访问修饰符(private、protected、public)来实现封装。 继承(Inheritance)是另一个重要的OOP概念,它允许一个类(子类)从另一个类(父类)继承属性和方法,并在此基础上进行扩展。这样能够避免重复编写代码,同时也能够保持代码的一致性和可读性。在Java语言中,使用关键字extends来实现继承。 多态(Polymorphism)是OOP的另一个重要概念,它指同一个方法调用在不同情况下会产生不同的行为。在Java语言中,通过方法的重载(overloading)和重写(overriding)来实现多态。 总之,面向对象编程已经成为现代软件开发的主流,它使程序的开发更加清晰和高效,也更加适应复杂应用的开发。在学习Java编程的过程中,理解面向对象编程的基本概念,对于学习Java语言和掌握Java编程技能是至关重要的。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值