2021-05-30

本文深入探讨了面向对象编程的思想,包括面向过程与面向对象的区别,类与对象的概念,以及Java中的实例化、变量、方法和访问权限。强调了对象的引用、静态关键字的作用、代码块的使用以及包和访问权限修饰符的重要性。此外,还介绍了封装、继承、多态这三大面向对象特征,并提到了抽象类和方法。
摘要由CSDN通过智能技术生成

面向对象

面向过程语言设计思想

过程: 具体步骤

把要完成的一件事情,分成一步一步的步骤,然后逐步完成.

把大象装进冰箱.

洗衣服

1.打开洗衣机盖 ()

2.衣服扔进去()

3.关闭洗衣机盖()

面向对象语言设计思想

首先会宏观的对整个事物进行分析(分类),不关心具体要做什么,关心谁(对象)去做.

洗衣机

开盖()

关盖()

洗衣服()

操作()

面向过程和面向对象是相辅相成的,面向对象是宏观的设计,面向过程是具体的实现.

Java类

类就是对同一类事物(具体存在的) 共有的属性(名词)行为(动词)的定义(抽象)

类是一个模板 根据某个类 来创建这个类的具体实例(对象)

发现类(设计类)

定义类的成员变量

定义类的成员方法

java对象

对象是类的实例 是概念的具体存在 以类为模板,在内存中创建一个真实存在的实例.

万事万物(现实存在)皆为对象(可以使用的)

 

类中的变量

从数据类型角度分:

基本类型变量: byte short int long float dobule char boolean

引用类型变量: 数组 接口...

按照位置划分:

成员变量:直接被类包含

成员变量的数据类型可以为基本类型也可以为引用类型

可以对成员变量进行初始化赋值(不建议), 如果不初始化,创建对象时,可以调用构造方法使用默认值赋值.

成员变量在创建对象的时候会从类中复制一份到对象中。

成员变量可以被类中方法、构造方法和特定类的语句块访问

成员变量生命周期: 变量什么时候生(对象创建),什么时候死(对象被回收时)

局部变量:在方法(成员方法,构造方法) 或者代码块中

局部变量在使用前必须显示的初始化赋值

局部变量生命周期: 变量什么时候生(方法被调用时),什么时候死(方法运行结束 出栈)

类中的方法

成员方法: (static修饰的) 被对象调用. 完成对象的功能(行为) 定义在类中

构造方法 : 用来初始化创建出来的对象 例如为对象中的属性赋值

方法名与类名相同,没有返回值,不需要void修饰

每一个类中至少有一个默认无参的构造方法,每次创建对象时至少调用一个.

如果显示的定义一个构造方法,默认的就失效了

方法重载

在同一个类中,有多个方法的名称相同.

如何区分方法

通过参数区分: 参数个数不同, 类型,顺序

方法的重载与方法返回值类型无关

● 对象与引用

● static关键字

● 代码块

● 包

● 访问权限修饰符

● 面向对象特征--封装

● this关键

 

对象与引用

• Java 语言中除基本类型之外的变量类型都称之为引用类型。

• Java中的对象是通过引用对其操作的.

例如: 我们有一个自定义类为Car(汽车类) class Car{ String color; String name; String model; } Car car= new Car(); 通常把这条语句的动作称之为创建一个对象,其实,它包含了三个动作。

基本类型和引用类型的区别: 基本类型 byte,short,int,long,float,double,char,boolean 它的值就是一个数字,一个字符或一个布尔值. 引用数据类型 类,接口,数组 它的值是对象在内存空间中的地址,具体的对象存在堆中

● 值传递与引用传递 ● Java中进行方法调用中传递参数时,参数传递有两种: ● 值传递:(形参数类型是基本数据类型):方法调用时,实际参数把它的值传递给 对应的形式参数,形式参数只是用实际参数的值初始化自己的存储单元内容,是 两个不同的存储单元,所以方法执行中形式参数值的改变不影响实际参数的值。 ● 引用传递:(形参数类型是引用数据类型参数):也称为传地址。方法调用时,实 际参数是对象,这时实际参数与形式参数指向同一个地址,在方法执行中,对形 式参数的操作实际上就是对实际参数的操作,这个结果在方法结束后被保留了下 来,所以方法执行中形式参数的改变将会影响实际参数。 基本类型传递的是该数据值本身。引用类型传递的是对对象的引用,而不是对象本身。

static 关键字

 概念 :static被称为静态,可以用来修饰类的属性,方法,代码块,内部类。

随着类的加载而加载。

优先于对象存在

修饰的成员,被所有对象所共享

可不创建对象,直接被类调用

static属性 静态属性是类的所有对象共享的,即不管创建了多少个对象,静态属性在内存 中只有一个

static方法可以使用对象调用,也可以直接用类名调用,建议用类名直接调用 

在static方法内部只能访问类的static属性,不能访问类的非static属性,static属性先加载

代码块

代码块在类中声明,类似一个没有名称的方法体(代码块),代码分实例块和静态块 实例块:每次创建对象时自动调用 { //任何符合语法的Java代码 } 静态块:类加载时自动调用,仅一次,与是否创建对象无关。 static { //任何符合语法的Java代码}

●包的概念: 就是文件夹

●包的作用: 1.避免类重名 2.按照不同功能管理类 3.控制访问权

● 包(package)的命名规范: 在包名中,可以使用.号来区分包的级别;包名一般情况下是小写 第一级 指该项目的类型,如com,org,gov等, 第二级 指项目所开发或者运行的公司名称,如:oracle,sun,huawei 等 第三级 指项目的名称,如:bcms,oa,erp,cms等 第四级 指项目模块的名称,如:bean,action,exception等 ● 包可以更好得管理逻辑相关的类,可以控制不同包之间的访问权限 ● 导入外部包的类,关键字“import”

访问权限修饰符

Java语言有四个权限访问修饰符,权限从大到小依次为:

1)public :公共权限 修饰类、属性、方法。可以被任意类访问

2)protected:受保护的权限 修饰属性、方法。 可以被同包类访问,如果不是同包类,必须是该类的子类才可以访问。

3)default:同包权限 修饰类、属性、方法。只能被同包的类访问

4)private:私有权限 修饰属性、方法。 只能在本类中访问

●面向对象语言的三大特征

封装

就是将类中某些信息隐藏起来(权限),不让外界直接访问,而是通过提供的特定方法来访问.

this

表示当前正在调用的对象

继承

儿子 继承 父亲

优点: 儿子可以使用父亲的功能 提高代码的复用性

继承使用场景

Student Dog Car Pseron

Dog 继承 Car

Car 继承 Dog

Dog 继承 Animal

满足 xxx是xxx is a

Student 继承 Person

Teacher 继承 Person

继承是面向对象程序设计思想,提高代码的重用性,可扩展性

多态

封装 包装

继承 子继承父

多态:

同一种事物,在不同时刻表现不同的状态

满足3条件:

要有继承

要有方法重写

父类引用指向子类对象

Object obj = new Car();

obj = new Dog();

obj = new Cat();

抽象类

如果一个类中没有包含足够的信息(抽象方法)来描绘一个具体的对象,这样的类就是抽象 类。
 抽象类中可以没有抽象方法,有抽象方法必定是抽象类
 一般用在体系结构的顶层用来进行功能的定义声明

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值