JavaSE笔记02

这篇博客主要介绍了JavaSE的基础知识,包括使用方法的注意事项,如方法重载、数组的定义和使用,Java内存的五大部分,以及面向对象的基本概念。此外,还详细讲解了类的定义、成员变量和方法,局部变量与成员变量的区别,关键字this的使用,以及构造方法的作用和特点。
摘要由CSDN通过智能技术生成

这是我作为一个还未毕业的小菜鸟的自学笔记,慎看!(当然如果有前辈指出我的错误我是非常感谢的哦~)

使用方法的注意事项

1、方法定义的顺序无所谓
2、返回值是void类型的,最后一行的“return;”可以省略不写
3、一个方法中可以有多个return语句,但是不可以同时执行

方法重载

方法重载:方法名称相同,但是参数列表不一样。
方法重载
参数列表不同:

  1. 参数个数不同
  2. 参数类型不同
  3. 多参数类型的顺序不同

注意:方法重载与返回值类型和修饰符无关!!

数组

数组的三个特点:
	1、数组是一种引用数据类型
	2、一个数组只能存放同一种数据类型
	3、数组的长度一旦定义就不可以改变

定义数组的两种种方式及简化方式:

  1. 动态初始化:数据类型[] 数组名 = new 数据类型[数组长度]

  2. 静态初始化:数据类型[] 数组名 = new 数据类型[]{元素1, 元素2, …}

  3. 静态初始化的省略格式:数据类型[] 数组名 = {元素1, 元素2, …}

注意:

  • 其中省略格式不可以分成两部分来写,其他的可以;静态初始化时也会有自动分配默认值的步骤,但是很快就分配了给定的值。

定义数组的方式

  • 如果直接打印数组名,得到的结果是数组内存地址的哈希值

直接打印数组名称

  • 如果一个方法要返回多个值,可以用数组做为其返回值类型 (任何数据类型都可作为方法的返回值类型或者是参数类型)

Java内存划分的五个部分

Java中内存划分为5个部分:

  1. 栈(Steak):存放的都是方法中的局部变量,且方法的运行一定要在栈中运行
    局部变量:方法的参数,或者时方法体中的变量,一旦超出作用域就会从栈内存中消失。

  2. 堆(heap):凡是new出来的东西都在堆内存中
    堆中的东西都有一个地址值:16进制
    堆内存中的数据都有默认值:
    整数 —> 0
    浮点数 —> 0.0
    字符 —> ‘\u0000’
    布尔型 —> false
    引用类型 —> null

  3. 方法区:存储.class的相关信息,包含方法的信息

  4. 本地方法栈:与操作系统相关

  5. 寄存器:与CPU相关

两个数组的内存图:
(此图源自于学习视频的截图)
此图源自于学习视频的截图

面向对象

面向过程:每一个步骤都要自己亲历亲为,自己来做
在这里插入图片描述
面向对象:不关心具体的步骤,利用已经有的方法来帮自己实现功能
在这里插入图片描述

Java中类的定义:

普通事物的要素:属性(是什么)、行为(可以做什么)
Java中的类:成员变量 —> 属性
成员方法 —> 行为
注意:
1、成员变量定义在类中,而不是方法中
2、成员方法没有关键字static

类的使用:

通常情况下,一个类不可以直接使用,要创建一个对象才可以使用,三个步骤:导包、创建、使用:
1、导包
指出当前需要使用的类在什么位置,如果需要使用的类和自己在同一个包中则不需要导包
格式: import 包名.类名;
2、创建
类名 对象名 = new 类名();
3、使用
对象名.成员变量名 对象名.成员方法名

注意:

  • 如果成员变量没有赋值,将会有一个默认值
  • new出的对象在堆内存中,对象的成员方法保存的是类中的成员方法地址(类的信息在方法区中)
    ( 该图片来自学习视频的截图)该图片来自学习视频的截图
  • 两个对象使用同一方法,但是互不干扰

(该图片来自学习视频的截图)
该图片来自学习视频的截图

  • 两个引用指向同一对象的内存图:

(该图片来自学习视频的截图)
该图片源自学习视频的截图

使用对象类型作为方法参数,实际上传入的是此对象的地址
使用对象类型作为方法的返回值,返回的其实就是该对象的地址值
(该图片源自学习视频的截图)
(该图片源自学习视频的截图)

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

  1. 定义的位置不一样:
    局部变量:在方法的内部
    成员变量:在方法外部,直接写在类中
  2. 作用范围不一样:
    局部变量:只有在方法中才可以使用,出了方法就消失了
    成员变量:在整个类中都可以使用
  3. 默认值不一样:
    局部变量:没有默认值,必须要赋值才可以使用(注意:方法的参数也是局部变量但是方法参数有默认值)
    成员变量:有默认值
  4. 内存位置不一样
    局部变量:位于栈内存中
    成员变量:位于堆内存中
  5. 生命周期不一样
    局部变量:随着方法进栈而产生,随着方法出栈而消失
    成员变量:随着对象创建而产生,随着对象被回收而消失

关键字this的使用

当方法的局部变量和类的成员变量重名的时候,根据就近原则使用局部变量,如果需要访问本类中的成员变量,需要使用this.成员变量名(通过哪个对象调用的方法,哪个对象就是this)
定义一个成员方法sayHello():
成员方法sayHello()

在main方法中调用刚刚创建的成员方法:
调用方法
结果:
结果

构造方法

构造方法是专门用来创建对象的方法,当我们用new创建对象时,其实就是调用了构造方法。
格式:public 类名(){ 方法体 }

注意:

  • 构造方法名必须与类名一致,且无返回值,构造方法中不能有return
  • 如果没有写构造方法,编译器会自动赠送一个无参无方法体的构造方法,一旦自己写了一个构造方法,那么编译器将不会赠送
  • 构造方法可以重载
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值