我的java入门过程(07)

面向对象与面向过程

面向过程: 以过程为中心的编程思想,实现功能的每一步,都是需要编程者自己实现

​ 大白话: 自己逐步完成功能,亲力亲为;强调的是完成功能的每一个步骤

面向对象: 以对象为中心的编程思想,通过指挥对象实现具体的功能

​ 大白话: 有事让别人完成,工程师仅仅是一个指挥者;强调的是对象

类与对象

客观存在的事物皆为对象 ,所以常说万物皆对象

关系

: 一类事物的抽象描述,相当于是一类事物的模版,图纸,模具

  • 属性:描述事物的特征(成员变量)
  • 行为:描述事物能执行的操作(成员方法)

对象: 就是生活中看得见摸得着的实实在在存在的物件

类是对象的模版,对象是类的体现

要想得到一个对象,必须根据类,创建(制造)出对象。所以为了得到对象,不得不先设计类

类的的定义

类的组成是由属性和行为两部分组成

  • 属性: 在类中通过成员变量来体现(类中方法外的变量)
  • 行为: 在类中通过成员方法来体现(和前面的方法相比去掉static关键字即可)

定义步骤

  • 定义类
  • 编写类的成员变量
  • 编写类的成员方法
  • 编写构造方法

代码格式:

public class 类名{
    类的成员变量; // 描述所有的这个类型的事物的  直接定义变量即可
    类的成员方法;//  所有的这类事物应该具备的能力  写方法的时候,去掉static,参数和返回者还是按以前的思路设计即可
}

对象的创建和使用

代码格式:

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

调用格式:

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

成员变量和局部变量区别

  • 类中位置不同: 成员变量(类中方法外)局部变量(方法内部或方法声明上)

  • 初始化值不同: 成员变量(有默认初始化值)局部变量(没有默认初始化值,必须先定义,赋值才能使用)

  • 内存中位置不同: 成员变量(堆内存)局部变量(栈内存)

  • 生命周期不同: 成员变量(随着对象的存在而存在,随着对象的消失而消失)局部变量(随着方法的调用而存在,醉着方法的调用完毕而消失)

封装

在这里插入图片描述

private关键字

  • private 是一个权限修饰符,可以用来修饰成员(成员变量,成员方法)
  • 被private修饰的成员,只能在本类进行访问

针对private修饰的成员变量,如果需要被其他类使用,提供相应的操作:

  • 提供“get变量名()”方法,用于获取成员变量的值,方法用public修饰
  • 提供“set变量名(参数)”方法,用于设置成员变量的值,方法用public修饰

this关键字

  • this修饰的变量用于指代该类中的成员变量,其主要作用是(区分局部变量和成员变量的重名问题)
  • 方法的形参与成员变量同名,不带this修饰的变量指的是形参,而不是成员变量
  • 方法的形参与成员变量不同名,不带this修饰的变量指的是成员变量

注意事项: this代表当前调用方法的引用,哪个对象调用的方法,this就代表哪一个对象


构造方法

创建一个类的对象的时候,需要依赖的方法,就是构造方法,如果一个类中,没有可以使用的构造方法,那么就意味着我们无法直接创建出这个类的对象!如果一个类中有多个可以使用的构造方法,那么就意味着我么拥有了多种创建对象的[途径];

代码格式:

public 类名(形式参数){
   一般只做给成员变量赋值的代码;
}

注意事项:

  • 如果没有定义构造方法,系统将给出一个默认的无参数构造方法

  • 如果定义了构造方法,系统将不再提供默认的构造方法

  • 方法名与类名相同,大小写也要一致

  • 没有返回值类型,连void都没有

  • 没有具体的返回值(不能由retrun带回结果数据)

  • 创建对象的时候调用,每创建一次对象,就会执行一次构造方法

  • 也可以在创建对象的过程中给成员变量赋值

  • 不能手动调用构造方法

构造方法的作用是什么?

  • 主要作用是用于创建对象,如果一个类中没有可以使用的构造方法(不写不是没有,不写的时候,java会默认赠送一个可以使用的无参数的构造方法),那么就无法直接创建这个类的对象
  • 带参数的构造方法,可以在创建对象的同时,给类中的成员变量赋值!(在创建对象的过程中,给成员变量赋值)

空参数构造方法的作用是什么?可以不写吗?

  • 空参数的构造方法,是java中最基本的构造方法,后面的很多技术都会默认使用这个构造方法,来操作我们自定义的类
  • 强烈建议手动书写空参数的构造方法,从语法角度来说,可以不写,但是从开发角度来说,建议写上

带参数构造方法与setter方法的作用是否冲突,写了带参数构造方法时,是否可以不写setter方法呢?

  • 带参数构造方法是创建对象的过程中,给成员变量赋值,强调的是这些成员变量的值与生俱来
  • setter方法,强调的是这个对象创建成功之后,使用类中的setter方法,修改某个或某些成员变量的值(后天修改)
  • 不能不写,因为二者并不冲突,各司其职,作用时机不同

getter方法和show方法作用是否相同,可以只写一个吗?

  • 从语法角度说,可以只写一个,也可以都写或都不写

  • getter方法,作用是让"指挥者"可以从对象中获取成员变量的值

  • show方法,是我们"编写者"自己提供的一个用于展示成员变量值得方法,仅仅是打印出了成员变量的值

    (show方法中写有可以将成员变量打印在控制台上的语句)

  • 建议:现阶段getter方法无论你是不是能用的上,都建议写,show方法,用的上就建议写

标准javaBean的编写

  • 从(01)到现在写的所有的描述事物的类都是javaBean,建议写javaBean的时候,无论你是否会使用到空参数构造方法,全参数构造方法,getter与setter方法,都建议全部写上去!!!(成员变量一定要封装!)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值