Java学习——blog 2

目录

面向对象思想

概述

区别

特点

类和对象

 类和方法声明

 类体

 成员变量和局部变量

 方法

构造方法与对象的建造

 构造方法

 创建对象

 使用对象

 对象的引用和实体

参数传值(不影响原件)

对象的组合

实例成员与类成员

 实例变量与类变量(static 修饰)

实例方法与类方法

方法重载(多态性)

this关键字

import语句(引入库/自定义中的的类)

访问权限

知识点小结

参考


  • 面向对象思想

概述

面向对象思想就是在计算机程序设计过程中,参照现实中事物,将事物的属性特征、行为特征抽象出来,描述成计算机事件的设计思想。它区别于面向过程思想,强调的是通过调用对象的行为来实现功能,而不是自己一步一步的去操作实现。

区别

面向过程:强调步骤。

面向对象:强调对象。

特点

面向对象思想是一种更符合我们思考习惯的思想,它可以将复杂的事情简单化,并将我们从执行者变成了指挥者。 面向对象的语言中,包含了三大基本特征,即封装继承多态

  • 类和对象

 类和方法声明

 类声明:class 类名{ 类体 }

​ 方法声明:返回类型 方法名(参数){ return 返回值;}

 类体

类的目的是抽象出一类事物共有的属性和行为。

●变量的声明:用来存储属性的值(体现对象的属性)。

●方法的定义:方法可以对类中声明的变量进行操作,既给出算法。

 成员变量和局部变量

成员变量的类型可以是JAVA 中向任何一种数据类型,包括基本类型:整型,浮点型、特型、逻辑类型、引用类型;数组、对象和接口。

 成员变量和局部变量:

  1. 成员变量生命在类体中,在整个类内都有效。局部变量声明在方法中,从声明它的位置之后开始有效。
  2. 局部变量与成员变量的名字相同,那成员变量被隐藏,如果想使用则用this关键字。
  3. 成员变量有默认值,局部变量没有默认值。

Tips:对成员变量的操作只能放在方法中,方法使用各种语句对成员变量和局部变量进行操作。

 方法

方法头 {

方法体的内容}

  • 构造方法与对象的建造

 构造方法

 ① 默认构造方法 : 类名() {执行语句;}

​ ② 自定义构造方法:类名(参数) {执行语句;}

Tips:允许在一个类中编写若干个构造方法,但必须保证他们的参数不同。如果类中没有编写构造方法,系统会默认该类只有一个构造方法,该默认的构造方法无参,且方法体中没有语句。(如果类里定义了多个构造方法,那Java不提供默认构造方法)

 创建对象

➊对象的声明

一般格式:

                类的名字 对象名字;

❷为声明的对象分配变量

使用 new运算符和类的构造方法为声明的对象分配变量,即创建对象。

如果类中没有构造方法,系统会调用默认的构造方法,默认的构造方法是无参数的,且方法体中没有语句。

❸对象的内存模型

(1)声明对象的内存模型

(2)为对象分配变量后的内存模型

(3)创建多个不同的对象

 使用对象

格式:

创建对象

类名 对象名 = new 类名();

使用对象访问类中的成员

对象名.成员变量; 
对象名.成员方法();

➊对象操作自己流变量

❷对象调用类中的方法

❸体现封装

 对象的引用和实体

(1)避免使用空对象。

(2)一个类的声明的两个对象如果具有相同的引用,二者就具备相同的变量。

(3)一个类的声明的两个对象如果具有相同的引用,二者就具备完全相同的实体,系统就会释放多余内存。

参数传值(不影响原件)

 对于基本数据类型的参数,向该参数传递的值的级别不可以高于该参数的级别。

​ 参数类型:基本数据类型、引用类型。

 可变参数(使用...表示)

对象的组合

  • 组合与复用

如果一个对象a组合了对象b.那么对象a就可以委托对象b调用其方法组合的方式复用对象b的方法。

通过组合对象来复用方法有以下特点。

(1)通过组合对象来复用方法也称“黑盒”复用,因为当前对象只能委托所包含的对象调用其方法,这样一来,当前对象对所包含的对象的方法的细节(算法的细节)是一无所知的。

(2)当前对象随时可以更换所包含的对象,即对象与所包含的对象属于弱耦合关系。

  •  类的关联关系和依赖关系的 UML图

➊关联关系

如果A类中的成员变量是用B类声明的对象,那么A和B的关系是关联关系,称A类的对象关联于B类的对象或A类的对象组合了B类的对象。

❷依赖关系

如果A类中某个方法的参数是用B类声明的对象或某个方法返回的数据类型是B类对象,那么A和B的关系是依赖关系,称A依赖于B。

  • 实例成员与类成员

 实例变量与类变量(static 修饰)

 实例变量和类变量都属于成员变量,用关键字static修饰的称作类变量,否则称作实例变量。

​实例变量和类变量的区别:

① 不同对象的实例变量互不相同。

② 所有对象共享类变量,当使用new运算符创建多个不同对象时,分配给这些对象的类变量占有相同一处内存。

③ 通过类名直接访问类变量,如果类没有创建对象,那类中的实例变量不会被分配内存,但类变量会被分配内存。

实例方法与类方法

 用关键字static修饰的方法成为类方法,否则称作实例方法。

​ 实例方法和类方法的区别:

① 实例方法中不仅可以操作实例变量,也可以操作类变量,而类方法中不可以操作实例变量。

② 可使用类名直接调用类方法。

  • 方法重载(多态性)

 方法名相同、参数个数不同或参数类型不同。(返回类型和参数名字不参与比较)

➊参数个数不同

❷参数个数相同,类型不同

  • this关键字

(1)构造方法中代表对象

(2)实例方法中代表当前对象

  • import语句(引入库/自定义中的的类)

 ① 用于引入包中的类和接口,写在package语句和类定义之间。

​ ② 引入一个包中的全部类:import java.util.* 引入java.util包中的Date类:import java.util.Date

​ ③ 如果没用import引入包中的类,也可以直接带着包名使用该类: java.util.Date date = new java.util.Date();

  • 访问权限

 public:“公共的”,被其修饰的类、属性和方法不仅可以跨类访问,而且允许跨包访问。

​ protected:“受保护的”,这种权限是为继承而设计的,protected所修饰的成员,对所有子类是可访问的,但只对同包的类是可访问的,对外包的非子类是不可以访问的。

​ default:“包访问权限”,只对同包的类具有访问的权限,外包的所有类都不能访问。

​ private:“私有的”,被其修饰的属性及方法只能被该类的对象访问,其子类不能访问,更不允许跨包访问。

Tips:

➊不能用protected和private修饰类。

❷访问限制修饰符按访问权限从高到低的排列顺序是public(公有)、 protecte(保护)、友好的、private(私有)。

知识点小结

(1)类是组成Java源文件的基本元素,一个源文件是由若干个类组成的。

(2)类体可以有两种重要的成员:成员变量和方法。

(3)成员变量分为实例变量和类变量。类变量被该类的所有对象共享,不同对象的实例变量互不相同。

(4)除构造方法外,其他方法分为实例方法和类方法。类方法不仅可以由该类的对象调用,也可以用类名调用:而实例方法必须由对象来调用。

(5)实例方法既可以操作实例变量也可以操作类变量,当对象调用实例方法时,方法中的成员变量就是指分配给该对象的成员变量,其中的实例变量和其他对象的不相同,即占有不同的内存空间:而类变量和其他对象的相同,即占有相同的内存空间。类方法只能操作类变量,当对象调用类方法时,方法中的成员变量一定都是类变量,也就是说,该对象和所有的对象共享类变量。

(6)通过对象的组合可以实现方法复用。

(7)在编写Java源文件时,可以使用import语句引入有包名的类。

(8)对象访问自己的变量以及调用方法受访问权限的限制。

参考:

《Java2实用教程(第5版)》

https://blog.csdn.net/weixin_40909604/article/details/84997148

https://blog.csdn.net/Babybybybybyby/article/details/112470622

Guess you like

Origin blog.csdn.net/K_savo/article/details/122656918