类,,,,,对象,,,,成员变量和局部变量 面向对象的封装 构造方法

面向对象三大基本特征: 封装,继承,多态

什么是类

类:一组相关的属性和行为的集合,我们使用事物的属性和行为特征来描述该事物,类可以
看做是一个模板。
属性:事物的【状态】信息
行为:该类事物具备功能,能做什么,相当于方法

什么是对象

对象:对象是类的实例,该实例具备类的属性和行为特征

类与对象的关系

a.类是对一类事物的描述,是抽象的
b.对象是一类事物的实例,是具体的
c.类是对象的模板,对象是类的实体

java中的描述事物:

成员变量:对应事物的属性
成员方法:对应事物的行为

定义类格式:

public class ClassName{
//成员变量
//成员方法
}
定义类:定义类的成员,成员变量和成员方法
成员变量定义:和普通变量定义方法一样,只是位置不一样,普通变量定义在方法体内
部,成员变量定义在类体里面,方法体外面。
成员方法定义:和之前的方法一样,只不过成员方法没有【static】
成员方法格式: public static 返回值 方法名(){}
普通方法格式: public 返回值 方法名(){}

以前调用方法三种格式:

//以前的调用方法,都是有static,所以main可以用以下的三种方式
//1.单独调用 方法名();
//2.打印调用 System.out.println(方法名(参数));
//3.赋值调用 数据类型 变量名=方法名(参数);

类的对象创建格式

类名 对象名=new 类名()
对象使用格式:使用对象中的成员信息
成员变量访问:对象名.成员变量名;
成员方法访问:数据类型 变量名=对象名.成员方法名();
成员变量赋值:对象名.成员变量名=数值;

通过对象调用成员属性步骤

1.创建类的对象
2.通过 对象名.变量名 或者 对象名.方法名() 完成调用

成员变量有默认值,局部变量没有把默认值,所以,成员变量没有初始化也可以使用,普通变量没有默认值不能使用

对象内存理解:

在栈内存当中,方法在执行的时候才会压栈,遵循先进后出,后进先出的原则,此时变量
(对象名)指向对内当中的空间,寻找方法的信息,执行该方法。
就是创建对象,对象调用方法的时候方法进行压栈,在堆内存中找到相应方法的内存空
间,由内存空间在方法区找到相应的方法所在位置,最终达到,不管多少次调用方法,最
终结果都是只需要一个内存来保存方法,达到节约空间目的。

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

a.定义位置不同:
成员变量:类中方法外
局部变量:方法中
b.作用范围不同
成员变量:作用于这个类
局部变量:作用于本方法
c.初始值不同
成员变量:有默认初始值
局部变量:没有默认初始值,复制之后才能使用
d.内存中位置不同
成员变量:位于堆内存
局部变量:位于栈内存,
e.生命周期不同
成员变量:随着对象创建诞生,随着对象消失而消失
局部变量:随着方法调用产生,方法调用结束而消失
f.修饰符不同
成员变量:可以使用修饰符 ------ 例如:public String name
局部变量:不可以使用修饰符 ----- 例如:String name

面向对象特征---->封装

什么是封装:封装就是可以防止其他类里面随意修改类中的数据,使得必须通过特殊的方
法才能够完成修改,加强了代码安全性,和可维护性。

封装原则:

本质就是把属性隐藏,想要访问属性,只能通过提供公共的方法对其访问

如何实现封装:主要是使用private关键字

a.使用【private】关键字修饰成员变量
b.对需要访问的成员变量,提供一对setXxx和getXxx方法,通过这两个方法完成对属性的取值和赋值

private关键字含义:

a.private是一个关键字,更是一个权限修饰符,表示最小限制
b.可以修饰成员变量,也可以修饰成员方法
c.修饰成员方法的时候,该成员方法只能在当前类使用,其他类不能使用

private关键字使用格式:

格式: private 数据类型 变量名:
步骤;
1.先使用private关键字修饰成员变量
2.生成相应的get和set方法

封装优化---->this关键字

我们发现,setXxx()方法中形参名字不符合,我们标识符不符合命名规范–>见名知意,
如果修改为和成员变量变量名相同,会根据就近原则,会把方法内比那里统统设定为形参
变量,导致赋值失败,我们就可以采用【this】关键字来完成变量重命名问题

this的含义

this代表所在类的对象,this.成员变量===>对象名.成员变量
意思就是方法被哪个对象调用,方法中的this就是哪个对象,谁到用this就是谁的对象

this的使用:

格式:this.成员变量
备注:如果方法中只有一个变量名,默认也是使用this修饰

导包:

如果我们需要的类和本类不在一个包下就需要导包
格式:import 包名.类名------->import java.util

构造方法

当一个对象呗创建出来,构造方法用来初始化对象,对象赋值,把所有的成员变量放在一
起赋值,避免每个成员变量单独赋值很麻烦。
备注:
对象创建,默认一个无参构造方法,一旦自己写了一个构造方法,那么无惨构造
方法就会被收回

构造方法定义格式:

修饰符 构造方法名(参数列表){
//方法体内容
}
构造方法没有返回值,(void都没有),构造方法名和类名一样

使用构造方法注意事项

1.构造方法名称必须和所在类名称一样
2.构造方法不用声明返回值类型,void也不需要
3.构造方法不能return一个具体返回值
4.如果定义类没有显示构造方法,那么就会默认提供一个无参构造,
一旦编写其他构造方法,无惨构造就被收回,要使用需要写出
5.构造方法可以重载
有关:参数个数,顺序,参数数据类型
无关:返回值,修饰符,形参名称

静态方法在类创建的时候在方法区,在执行整个类的时候会映射在堆内存里面,不像非静态方法需要通过对象调用

静态方法调用格式:类名.静态方法名()

用封装思想定义一个标准类–>javaBean

1.所有成员变量都要使用【private】关键词修饰
2.为所有成员变量提供一对公共的set和get方法
3.要编写一个无参构造方法
4.要写一个全参构造
符合以上四点称为javaBean

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值