Java(三)Java面向对象

面向对象

类与对象

public class 类名 {
    1.成员变量(代表属性)
    2.成员方法(代表行为)
    3.构造器
    4.代码块
    5.内部类
}

使用对象:

  • 访问属性

对象名.成员变量

  • 访问行为

对象名.方法名(…)

用来描述一类事物的类叫做JavaBean类,在这里不写main方法

编写main方法的类叫做测试类,可以在测试类中创建javabean类的对象并进行赋值调用

  • 类名首字母建议大写,需要见名知意、驼峰模式

  • 一个Java文件中可以定义多个class类,且只有一个类是public修饰,而且public修饰的类名必须成为代码文件名,建议一个Java文件定义一个class类

  • 成员变量的完整定义格式是:修饰符 数据类型 变量名称 = 初始化之;一般无需指定初始化值,存在默认值

对象的成员变量默认值规则:

基本类型:

基本类型默认值
byte、short、int、long0
float、double0.0
booleanfalse

引用类型:

引用类型默认值
类、接口、数组、Stringnull

ps:按住鼠标滚轮可以竖向批量修改,也可以按住Alt键配合鼠标左键使用

封装(极其重要)

private关键字

  • 是一个权限修饰符

  • 被private修饰的成员只能坐在本类中才能访问

成员变量和局部变量

在方法内部称为局部变量

在方法外部,类的里边叫做成员变量

使用变量的时候采取就近原则

this关键字

同C++的this指针,这里不再介绍

构造方法

public class Student {
    修饰符 类名(参数) {
        方法体;
    }
}

特点:

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

2.没有返回值类型,连void也没有

3.没有具体的返回值(不能由return带回结果数据)

在创建对象的时候,由虚拟机自动调用,作用是给成员变量进行初始化的

每生成一个对象,就会调用一次构造方法

  • 推荐手写无参构造和有参构造

标准JavaBean

命名规则:

1.类名要见名知意

2.成员变量使用private修饰

3.至少提供两个构造方法

  • 无参构造

  • 有参构造

4.成员方法

  • 提供每个成员变量对应的setXXX()/getXXX()

  • 如果还有其他行为也要写上

快捷键:Alt+Fn+Insert可以快速生成构造方法与set & get方法

也可以使用插件PTG

右键空白处点击ptg to javabean即可

但是会多生成一个toString方法

对象内存图

当运行一个类的时候,字节码文件加载时会进入方法区,而方法运行进入栈空间

一个对象内存图

Student s = new Student();

1.加载class文件

2.申明局部变量

3.在堆内存中开辟一个空间

4.默认初始化

5.显示初始化

6.构造方法初始化

7.将堆内存的地址值赋值给左边的局部变量

两个对象内存图

同一个对象内存图一样,也会涉及到栈内存,堆内存和方法区

两个引用指向同一个对象

Student stu1 = new Student();
Student stu2 = stu1;

两个对象共享堆内存中的同一块空间,因此修改stu2会覆盖原来的值,即修改了stu1

this的内存原理

this的作用:区分局部变量和成员变量

this的本质:方法调用者的地址值(对象在堆内存中的地址值)

成员和局部

区别成员变量局部变量
类中位置不同类中、方法外方法内、方法申明上
初始化值不同有默认初始化值没有默认值,使用前要完成赋值
内存位置不同堆内存栈内存
生命周期不同随着对象的创建而存在,随着对象的消失而消失随着方法的调用而存在,随着方法的运行结束而消失
作用域不同在整个类中有效在当前方法中有效

能够区分成员变量与局部变量即可

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值