java学习笔记-第二阶段

面向对象编程(基础部分)


一、类与对象

(1)类是抽象的,概念的,代表一类事物(即类是数据类型)
(2)对象是具体的,实际的,代表一个具体事物
(3)类是对象的模板,对象是类的一个实体
对象在内存中的存在形式
在这里插入图片描述

二、属性/成员变量/字段

(属性是类的一个组成部分,一般是基本数据类型,也可以是引用类型)

1.如何创建对象

(1)先声明再创建
cat cat;
cat = new cat();
(2)直接创建
cat cat = new cat();

2.如何访问属性

基本语法:
对象名.属性名

3.类和对象的内存分配机制

栈:一般存放基本数据类型(局部变量)
堆:存放对象(数组等)
方法区:常量池,类加载信息

三、成员方法

1.基本语法

访问修饰符 返回数据类型 方法名(形参列表){
语句;
return 返回值;
}

2.方法的调用机制原理

调用小结:
1.当程序执行到方法时,就会开辟一个独立的空间(栈空间)
2.当方法执行完毕后,或者执行到return语句时,就会返回
3.返回到调用方法的地方
4.返回后,继续执行方法后面的代码
5.当main方法执行完毕,整个程序退出

3.成员方法的好处

(1)提高代码的复用性
(2)可以将实现的细节封装起来,供其他用户来调用

4.注意事项

返回数据类型:
(1)一个方法最多有一个返回值(返回数组来返回多个结果)
(2)返回类型可以为任意类型
(3)返回数据类型必须与return值相同
方法体:
方法不能嵌套定义
方法调用:
(1)同一个类中的方法直接调用即可
(2)跨类调用需要通过对象名调用,比如:对象名.方法名(参数)

5.成员方法传参机制(重要)

基本数据类型的传参机制:
基本数据类型,传递的是值(值拷贝),形参的任何改变不影响实参
引用类型的传参机制:
引用类型传递的是地址(传递也是值,但值是地址),可以通过形参影响实参

6.方法递归调用(非常重要)

基本介绍:
递归就是方法自己调用自己,每次调用时传入不同的变量
重要规则:
(1)执行一个方法时,就创建一个新的受保护的独立空间(栈空间)
(2)如果方法中使用的是引用类型变量,就会共享该引用类型的数据

7.方法重载(OverLoad)

基本介绍:
java中允许同一个类中,多个同名方法的存在,但要求形参列表不一致
好处:
减轻起名和记名的麻烦
注意事项:
(1)方法名:必须相同
(2)形参列表:必须不同(形参类型或个数或顺序,至少有一样不同,参数名无要求)
(3)返回类型:无要求

四、可变参数

基本介绍:
java中将同一个类中多个同名同功能但参数个数不同的方法,封装成一个方法
基本语法:
访问修饰符 返回类型 方法名(数据类型… 形参名){
}
注意事项:
(1)可变参数的实参可以为0个或任意多个
(2)可变参数的实参可以为数组
(3)可变参数的本质就是数组
(4)可变参数可以和普通参数一起放在形参列表,但可变参数必须在最后
(5)一个形参列表中只能出现一个可变参数

五、作用域

基本介绍:
属性(全局变量):作用域为整个类体
局部变量:在成员方法中定义的变量,作用域为定义它的代码块中
注意事项:
(1)全局变量可以不赋值,直接使用,因为有默认值;局部变量必须赋值后,才能使用,因为没有默认值
(2)属性和局部变量可以重名,访问时遵循就近原则
(3)在同一个作用域中,两个局部变量,不能重名
(4)属性生命周期长,伴随着对象的创建而创建,伴随着对象的销毁而销毁。局部变量,生命周期较短,伴随着它的代码块的执行而创建,伴随代码块的结束而销毁。
(5)作用域范围不同:
属性:可以被本类使用,或其他类使用(通过对象调用)
局部变量:只能在本类对应方法中使用
(6)修饰符不同:
属性可以加修饰符
局部变量不可以加修饰符

六、构造方法/构造器

基本介绍:
为类的一种特殊方法,它的主要作用是完成对新对象的初始化。
基本语法:
【修饰符】方法名(形参列表){
方法体;
}
注意事项:
(1)构造器没有返回值
(2)方法名和类名必须一样
(3)参数列表和成员方法一样的规则
(4)构造器的调用,由系统完成
(5)一个类可以定义多个不同的构造器,即构造器重载
(6)构造器是完成对象的初始化,并不是创建对象
(7)如果程序员没有定义构造器,系统会自动给类生成一个默认无参构造器;
一旦定义了自己的构造器,默认的构造器就覆盖了,就不能使用默认构造器了,除非再显式的定义一下。

类定义更加完善:

在这里插入图片描述

七、this关键字

基本介绍:
构造器的形参直接写成属性名
注意事项:
(1)this关键字可以用来访问本类的属性、方法、构造器
(2)this用于区分当前类的属性和局部变量
(3)访问成员方法的语法:this.方法名(参数列表)
(4)访问构造器语法:this(参数列表);注意只能在构造器中使用(即只能在构造器中访问另一个构造器,必须放在第一条语句)
(5)this只能在类定义的方法中使用

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值