一、类中的方法
1、实例方法
格式:
访问限制修饰符 方法的返回值类型 方法名称(参数列表){方法体}
1.访问限制修饰符--public 缺省的【没有写】
2.方法的返回值类型--就是方法的执行结果类型
1.有返回值时,方法的返回值类型一定是方法执行结果的具体类型
方法的返回值类型可以是基本类型,复合类型
方法体中的最后一句话一定是return xxxx;
2.没有返回值,方法的返回值类型使用void代替。
3.方法名称--合法的标识符【首字母小写,从第二个单词开始首字母大写】
4.(参数列表)--用来接收方法之外的数据进入本方法参与运算【找帮手】
参数实际上是变量,没有初始值,属于局部变量【数据类型 变量名称】
可以没有,也可以有,也可以有多个,多个参数之间用“,”
5.方法体--编写具体实现过程的地方。
格式:访问限制修饰符 方法的返回值类型 方法名称(参数列表){方法体}
访问限制修饰符--public 缺省的【没有写】
方法的返回值类型--就是方法的执行结果类型
没有返回值,方法的返回值类型使用void代替。
方法名称--合法的标识符【首字母小写,从第二个单词开始首字母大写】
(参数列表)--用来接收方法之外的数据进入本方法参与运算【找帮手】
可以没有,也可以有,也可以有多个,多个参数之间用“,”
访问限制修饰符还可以是缺省的【没有写】
方法的返回值类型是基本类型
方法体中的最后一句话一定是return xxxx;
实例方法只能由对象来进行访问
2.静态方法【类方法】
使用static关键字修饰的实例方法就是静态方法【类方法】
格式:访问限制修饰符 static 方法的返回值类型 方法名称(参数列表){方法体}
静态方法【类方法】可以对象方法,也可以类名访问
实例方法与静态方法【类方法】的区别?
1.实例方法没有static ,静态方法【类方法】有static
2.实例方法只能对象方法,静态方法【类方法】可以对象方法,也可以类名访问
3.实例方法只在方法调用时分配运行空间,静态方法【类方法】在方法调用前已经分配好运行空间。
3.构造方法
构造方法的作用就是为了创建对象
我们创建好一个java类之后,默认类体中就有一个默认的无参数构造方法存在。只是没有显示出来
格式:访问限制修饰符 类名(参数列表){方法体}
当类中出现的有参数的构造方法时,默认无参数的构造方法会被覆盖,此时我们如果需要无参数的构造方法时,就需要手动给出无参数构造方法
当类中出现的有参数的构造方法时,默认无参数的构造方法会被覆盖,
此时我们如果需要无参数的构造方法时,就需要手动给出无参数构造方法
二、方法重载
在同一个类中,方法的名称相同,参数不同这种现象叫方法重载。
注意:方法重载与方法的返回值类型没有关系,与方法的参数有关
方法的名称相同 ,方法的参数个数、参数类型
package com.wanxging.test1;
public class FangFaChongZai {
//构造方法重载
public FangFaChongZai(){}
public FangFaChongZai(String name){}
public FangFaChongZai(int age){}
//实例方法重载
public void method1(){}
public int method1(int num){return 100;}
public char method1(int num,char ch){return 'A';}
public char method1(char ch,int num){return 'A';}
//静态方法重载
public static void staticmethod1(){}
public static int staticmethod1(int num){return 100;}
public static char staticmethod1(int num,char ch){return 'A';}
public static char staticmethod1(char ch,int num){return 'A';}
}
三、同一个类中方法与变量的调用关系
类中可以包含两个基本元素--变量和方法
1.方法里面调用变量
构造方法中可以调用实例变量,默认this.实例变量,可以省略this
构造方法中可以调用静态成员变量,默认类名.静态成员变量,也可以this.静态成员变量,可以省略类名/this
构造方法中可以调用局部变量,局部变量名称访问
实例方法中可以调用实例变量,默认this.实例变量,可以省略this
实例方法中可以调用静态成员变量,默认类名.静态成员变量,也可以this.静态成员变量,可以省略类名/this
实例方法中可以调用局部变量,局部变量名称访问
静态方法中不可以调用实例变量
静态方法中可以调用静态成员变量,默认类名.静态成员变量,可以省略类名
静态方法中不能出现this
静态方法中可以调用局部变量,局部变量名称访问
2.方法里面调用方法
构造方法中可以访问其他的构造方法
构造方法中可以访问实例方法,默认this.实例方法,可以省略this
构造方法中可以访问静态方法,默认类名.静态方法,也可以this.静态方法,可以省略类名/this
实例方法中可以访问构造方法,new+构造方法
实例方法中可以访问其他的实例方法,默认this.实例方法,可以省略this
实例方法中可以访问静态方法,默认类名.静态方法,可以this.静态方法,可以省略类名/this
静态方法中可以访问构造方法,new+构造方法();
静态方法中不能访问实例方法
静态方法中不能出现this
静态方法中能访问其他的静态方法,默认类名.静态方法,可以省略类名
总结:静态方法中不能访问实例元素【实例变量/实例方法】
静态方法中不能出现this
为什么静态方法中不能访问实例元素?
原因是静态方法的内存分配时机早于实例元素的内存分配时机。
四、对象
对象的定义
1.对象是由我们自己定义的类来创建出来的。
2.对象实际上就是类的具体实现。
例如:修建大楼时绘制的设计图纸就是类,根据设计图纸修建起来的真实的可以住人的大楼就是对象。
类--抽象【抽取象什么一样的东西】--模板【设计图】
对象--实现--实例【楼房】
3.没有类就没有对象
4.一个类可以创建出多个对象
5.类是对象的模板,对象是类的真实表现
对象的作用?
调用类中的变量和方法
如何创建对象?[new]
1.当前类中--new+构造方法---this
2.其他类中--new+构造方法
格式 : new 构造方法( [参数值] );
对象访问变量
1.局部变量在其他类中方法里面,不能访问。
2.实例变量只能对象访问
3.静态变量类名访问,可以对象访问
4.实例变量在同一个类的多个对象之间不能数据共享
静态变量在同一个类的多个对象之间能数据共享
对象访问方法
1.构造方法的访问--new
2.实例方法只能对象访问
3.静态方法类名访问,可以对象访问
4.有参数方法,需要传递参数【个数,类型】【要什么,给什么】
5.有返回值,方法体中的最后一句是return,返回的数据值要与方法的返回值类型匹配,
调用有返回值的方法需要定义变量来接收方法的返回值【给什么,收什么】
对象的内存分配原理