方法:
概念:类的共同行为,封装了一段逻辑代码,在封装方法时,尽可
能的只完成一项功能(避免将多个功能封装到一个方法内)
方法的使用:
方法属于对象的行为,应该使用:引用.方法,这些方法
动态绑定到对象上
方法签名:
方法名+形参列表=方法签名
形参列表:指的是形参的类型顺序列表
如: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)这样的方法
如果有,编译通过,
没有,编译失败,并提示错误
方法和构造方法的区别:
方法是某个对象的行为,完成一项功能
构造:用老。。初始化
定义时:
调用时:构造器的调用:
只能是new关键字来调用 。
new 构造方法(有参传参)。
局部变量没默认值,局部变量是方法里边的
练习:定义一个类型:坐标中的点(Point)
成员变量 int x,y
方法 计算到原点(0,0)的距离distance()
Math.sqrt(num):对num开平方
move(int s)
横纵坐标都平移整数s
move(double s)
横纵坐标都平移浮点数s
再定义一个方法,横坐标平移x,纵坐标平移y
=======================================================
构造方法(构造器):
是特殊的方法,作用是用来给成员变量(Field,字段,属性)
初始化。
特殊在
(1)没有返回值这个位置
(2)方法名与类型相同
如: 点,
public class Point{
int x;
int y;
修饰词 类型名(){}
....普通方法
}
默认无参构造器:如果定义类时,没有添加构造方法,系统
会默认提供一个公有的没有形式参数的构造方法
public Point(){}
注意:如果定义期间,提供了构造器,系统不再
提供无参构造器。
有参构造器:因为构造器是用来给成员变量初始化的,
为了方便,所以形式参数的名称都与成员变量一致。
因此,在赋值时,this.不能省略。
构造器的调用:
只能是new关键字来调用 。
new 构造方法(有参传参)。
对象的实例化:是由new完成的(对象此时就存在了,但是成员变量都是默认值)
对象的成员变量初始化:是由new调用的构造器进行的(成员变量是第一次被赋值)
构造器的重载:
一个类中,可以有多个构造器。
方法名相同,参数列表不同
===============================================================
数组:
基本数据类型数组,元素是基本类型的数据。
引用数据类型数组,元素是对象,存储的是元素对象的地址信息
初始化的方法:
静态初始化:
元素类型[] 变量名 = {}
动态初始化:
(1)规定长度的
(2)不规定长度的
引用数据类型的数组使用规定长度的方式进行初始化时,
默认值是null;
如:
Cell[] cs = new Cell[10];
cs里有地址,数组对象的地址。此对象里有10个null。
第一个元素存储(0,3)的方格
cs[0] = new Cell(0,3);
第二个元素存储(0,4)的方法
cs[1] = new Cell(0,4);
======================================================================
this关键字:
在普通方法或构造器中,操作的成员变量如果与局部变量名称相同时,
为了避免出现歧义,应该在成员变量前使用this.进行区分
当没有歧义时,this.可以省略不写
在构造器中:还可以使用this关键字调用本类中的其他构造方法
语法格式: this(有参传参)
只能在构造器中的首行首句上使用