this关键字:(这个),
成员变量前系统默认提供了this.
类是对象的模板,对象是类的实例化
当形式参数与成员变量名称一致时,为了区分开,需要在
成员变量前添加this.
this指向的是将要创建的那个对象,即,变量.方法()时的
变量
----------------------------------------------
方法:
概念:类的共同行为,封装了一段逻辑代码,在封装方法时,尽可
能的只完成一项功能(避免将多个功能封装到一个方法内)
方法的使用:
方法属于对象的行为,应该使用:引用.方法,这些方法
动态绑定到对象上
方法签名:
方法名+形参列表=方法签名
形参列表:指的是形参的类型顺序列表
如:public void sum(int a,int b)
问:方法签名是: sum + int,int
public int eat(String food)
方法签名是:eat +String
方法的重载(overload):
在同一个类型中,方法名相同,参数列表不同
在方法调用时,编译器会检查类的信息中是否有
此方法签名的方法
c.sum(3,5):
此时编译器检查类中是否有c.sum(int,int)这样的方法
如果有,编译通过,
没有,编译失败,并提示错误
================================
练习:定义一个类型:坐标中的点(Point)
成员变量 int x,y
方法 计算到原点(0,0)的距离distance()
Math.sqrt(num):对num开平方
move(int s)
横纵坐标都平移整数s
move(double s)
横纵坐标都平移浮点数s
再定义一个方法,横坐标平移x,纵坐标平移y
内存管理机制:
jvm将内存分成三大主要区域。
方法区: jvm将字节码文件加载到此区域,用来存储类的信息
堆(heap):用来存储引用类型的对象
栈(stack):用来存储方法内的局部变量
栈帧:是栈中的空间。当程序执行到某一个方法时,jvm专门
为此方法开辟的一块独有空间,此方法内的局部变量
都在此栈帧中,当此方法结束后,栈帧消失,释放内存
========================================
构造方法(构造器):
是特殊的方法,作用是用来给成员变量(Field,字段,属性)
初始化。
特殊在
(1)没有返回值这个位置
(2)方法名与类型相同
如: 点,
public class Point{
int x;
int y;
修饰词 类型名(){}
....普通方法
}
默认无参构造器:如果定义类时,没有添加构造方法,系统
会默认提供一个公有的没有形式参数的构造方法
public Point(){}
注意:如果定义期间,提供了构造器,系统不再
提供无参构造器。
有参构造器:因为构造器是用来给成员变量初始化的,
为了方便,所以形式参数的名称都与成员变量一致。
因此,在赋值时,this.不能省略。
构造器的调用:
只能是new关键字来调用 。
new 构造方法(有参传参)。
对象的实例化:是由new完成的(对象此时就存在了,但是成员变量都是默认值)
对象的成员变量初始化:是由new调用的构造器进行的(成员变量是第一次被赋值)
构造器的重载:
一个类中,可以有多个构造器。
方法名相同,参数列表不同