Java基础(day09)(面向过程+面向对象)

目录

面向过程

面向对象

类和对象

构造方法

成员变量,局部变量

this 关键字

构造代码块,局部代码块,静态代码块

构造代码块

局部代码块

静态代码块

面向对象的三大特征

封装


面向过程

        主导者始终是自己,且关注实现功能的每一步细节,更注重实现功能的过程

       优点  :  

                对于简单的程序 ,面向过程的编程思想更加直接  效率更高

        缺点  :  

                编程思想更倾向于计算机执行程序的方式

面向对象

        更关注的是能实现功能的对象,只需要通过对象调用该功能实现程序逻辑即可

        不关注实现的细节和过程

                一切皆对象,万物皆对象

        优点

                只关注能实现功能的对象 不关注细节  符合人类思考问题的方式

        缺点

                在某些简单的场景下, 面向对象思想编程效率反而低一点

应用场景 : 

        复杂的业务场景,更适合用面向对象的编程思想来进行开发,方便进行分工合作,开发效率更高

        简单的业务场景,更适合用面向过程的编程思想开发,简答  直接  高效

类和对象

        类

                抽象的概念

                对一类事务进行共有特征和行为方式的抽象

        对象/实例

                是类的具体化或者实例化

        现有类先有对象?

                对象->类

        代码开发阶段

                类->对象

定义类

        [权限修饰符] class 类名{

                特征;

                行为;

        }

        特征(成员属性 Fail) : 变量

        行为(成员方法) : 方法

 创建类的对象 : 

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

        例如

                Person  p1 = new Person();

调用对象的属性和方法 :

        格式 :

                对象名.属性名

                对象名.属性名 = 值

                

构造方法

        又称为构造器

概念 : 

        方法名和类名相同,没有返回值部分

格式 :

        权限修饰符  类名(){};

        

例如 :

        

public Person(){
    System.out.println("Person 的无参构造");
};

注意

        1*每个类都有构造方法,编译器在编译时会检查类中有没有显示定义构造方法,如果没有,则编译器会自动生成无参构造器,

                如果类中自定义类构造器,则不再提供默认的无参构造;

        2*创建对象是就是通过调用类的构造方法来完成的

        3*有参构造通常用于给对象的属性进行初始化赋值

        4*构造方法是可以重载的

成员变量,局部变量

        成员变量

                定义在类中,方法外    表示类的属性特征

        局部变量

                定义在方法中,语句代码块中

        成员变量和局部变量是可以同名的

                如果访问在成员变量,局部变量的范围内,采用就近原则进行访问

        成员变量和局部变量的区别

                1*定义位置不同

                2*作用域范围不同

                        成员变量:整个类

                        局部变量:方法内  语句代码块内

                3*内存位置不同

                        成员变量 :

                                在堆中

                        局部变量 :

                                在栈中

                4*生命周期不同

                        成员变量 :

                                随着对象的创建而创建  随着对象的消亡而消亡

                        局部变量 :

                                随着方法的执行而创建  随着方法执行结束释放空间而结束

this 关键字

this表示当前对象  动态的概念

应用场景

        this.属性--获取当前对象的属性

        this.属性 = 值   ----设置当前对象的属性值

        this.方法 ---类中调用其他普通方法

        this([参数]);--this语句 调用当前对象的其他构造方法

注意 :

        this语句在构造方法中使用,只能放在构造方法的首行

        this语句调用构造方法不能成环

构造代码块,局部代码块,静态代码块

构造代码块

        初始化代码块

                格式

                        {

                                代码块 ;

                        }

                位置 :

                        类中方法外

                执行 :

                        创建对象时  在构造方法前执行

                        每创建一个对象  构造代码块就执行一次

                应用场景

                        所有构造方法中重复的代码可以提取到构造代码块中,从而提高了代码的复用性

                        成员属性进行初始化赋值

局部代码块

        格式

                        {

                                代码块 ;

                        }

        位置 : 

                方法或语句代码块中

        执行 :

                跟着方法一起执行

        应用场景

                如果希望局部代码块里的变量能够尽早释放空间,提高了空间利用率        

静态代码块

                

面向对象的三大特征

封装  继承  多态

抽象

封装

概念 : 

        将一类事物共有的属性特征和行为方式通过类来体现

        "透明"--无法得知内部的工作流程

理解 : 

        计算机  将所有硬件和软件程序封装在一个壳子里

        可以在壳子的基础上使用

        但是无法看到其中的构成 以及 运行流程

类是Java中的一等公民

体现 : 

        类

        方法

问题引出 :

        属性可以被修改  不安全

解决方案

        私有化属性        

                private--私有

                        只能在本类中访问

        提供public公开属性的get/set方法

优点 :

        提高安全性

        提高了程序的可维护性

封装是继承,多态的基础

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小乔同学Online

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值