java小知识对象

Posted on 2021-02-19 17:34  ChEnXiAnShEnG  阅读(47)  评论(0编辑  收藏  举报

面向对象:当实现一个功能的时候,不看步骤,直接找具有该功能的人
面向过程:当需要实现一个功能的时候,需要亲历亲为,详细每个步骤


类和对象的关系
类是对一类事物的抽象
对象是一类事务的具体
类是对象的模板,对象是类的实体


类的定义
用模拟学生事务
属性:姓名,年龄,学号,班级等等
行为:(能做什么)吃饭,睡觉.........等
属性就是成员变量
成员方法就是行为
成员变量:直接写在类中的变量
成员方法:成员方法不写static关键字


通常一个类不能直接使用,需要根据类创建一个对象才能使用
1导包:也就是指出需要使用什么类,在什么位置
impor 包名称.类名称;
对于和当前类属于同一个包的情况下,可以省略导包
2创建,格式
类名称 对象名=new 类名称();
3使用,分两种情况;
使用成员变量:对象名字.成员变量名
使用成员方法:对象名字.成员方法(如果需要参数,需要填写参数)


局部变量和成员变量的区别
1定义的位置不一样
局部变量在方法的内部
成员变量在方法外面面直接写在类中
2作用范围不一样
局部变量的使用范围只能在方法中使用,出了方法就不能使用了
成员变量的使用范围是整个类都可以使用
3默认值不一样
局部变量没有默认值,如果的进行赋值是无法使用的
成员变量又默认值,规则和数组一样
4内存位置不一样
局部变量位于栈内存
成员位于堆内存
5生命周期不一样
局部变量随着方法进栈而诞生,随着方法出栈而消失
成员变量随着对象创建诞生,随着对象被垃圾回收而消失


面向对象的三大特征
1封装性在java当中体现
1方法就是一种封装
2关键字private也是一种封装
封装就是把一些细节信息都隐藏起来,对于外界都不可见


问题描述,定义年龄的时候,无法阻止不合理的数组被设置进来(类年龄是int类型)
解决方案:用private关键字将需要保护的成员变量进行修饰;

一旦使用了private关键字,那么本类中还可以访问,但是超出本类就不能直接访问了
间接访问private成员变量,就是定义一堆get/set方法
必须叫setXXX或者getXXX命名规则
对于get不能有参数,返回值类型和成员变量类型一致;
对于set方法不能有返回值,参数类型必须和成员变量一致
对于基本类型的当中的boolean值,get方法要写成isXXX的形式,而set的不变
当方法中的局部变量和类成员变量名字一样的话,根据就近原则优先使用局部变量
如果想访问本类中的成员变量需要使用格式
this.成员变量
通过谁调用的方法。谁就是this


构造方法
构造方法是专门创建对象的方法,我们通过关键是new来创建对象时,其实就是在调用构造方法
格式
public 类名(参数类型 参数名称){
方法体
}
注意构造方法名称必须和类相同完全一样
构造方法不要写返回值连void也不写


定义一个标准的类
一个标准的类有四个部分组成
1所有成员变量都需要使用private私有化
2为每个成员变量编写get set方法
3编写一个无参的构造方法
4编写一个有参数的构造方法
静态方法不能使用this关键字