方法类似C/C 中的函数,java语言会有所差异
java中方法描述有以下修饰符顺序:权限修饰 静态修饰符 返回值 方法名 参数列表
方法命名建议用动词开头,因为方法本身类似于行为动作
权限修饰工作中使用最多是public 和private(注意private修饰的不会被事务管理,事务管理是基于public修饰权限的)
返回值:void 或者其他 void无返回的,本质上也是返回的一种特殊类型
方法名:建议唯一名称命名,比较特殊是常见的构造器参数方式名字一样参数列表不同(这个不必特殊记忆,认识一下,工作中会有很多),同名方法参数列表不同
参数列表: 一般指的形式参数,基本类型(byte short int double long)和引用类型
public class IMethod {
public static void main(String[] args) {
String name = "tom";
String useName = getUseName(name);
System.out.println(useName);
}
/**
* 公共方法
* @param name
* @return
*/
public static String getUseName(String name ){
return name;
}
/**
* 默认default
* @param num
* @return
*/
static int getNum(int num){
return num;
}
/**
* private 私有方法
* @param num
* @return
*/
private static int getNum2(int num){
return num;
}
}
方法调用:静态方法只能调用静态方法;
非静态方法可调用静态和非静态方法
这种差异问题:由于jvm加载类决定,静态随类加载,而非静态随对象调用;即类的加载早于对象的创建,因此不能在静态中调用非静态方法
public ,private protected default四种都可以修饰方法,工作中常用public和private
什么时候确定用方法呢,可以抽取尽量抽取方法:主要是代码层次明确和维护性较好,另外可以减少同名变量的干扰(个人理解)
idea快捷键:ctrl alt m 抽取
抽取时机:当确定了该段代码的始末,就是做事情的开始和结束后
静态修饰符:static修饰 ,工作中一般工具类中比较常用;static修饰的会加载到静态区;加载速度上会优于无static的
在多线程中:static 修饰方法 用synchronized修饰的方法,锁的是类对象;非静态用synchronized修饰的则是锁的是对象,了解多的话可以用jstack看堆栈信息
返回值和无返回值:如果不需要使用方法的返回结果可以不用返回值,需要用方法的返回结果就返回具体要返回的值的类型
/**
* 无返回值
* @param food
*/
public static void eat(String food){
System.out.println(food);
}
方法名:做到见名知意,即:看到方法名就知道具体具体做什么
参数列表:简单讲就是多个不同类型的参数的组合,示例中有构造参数也有常规参数
public class Student {
private String name;
private Integer age;
public Student(){
}
public Student(String name){
this.name = name;
}
public Student(String name,Integer age){
this.name = name;
this.age = age;
}
public Student(Integer age,String name){
this.name = name;
this.age = age;
}
public void readBook(String bookType,String bookName){
}
}
构造方法有带参数的构造方法(无参构造)和带参数的构造方法;方法名是相同但是参数的个数和类型不同
public Student(String name,Integer age){
this.name = name;
this.age = age;
}
public Student(Integer age,String name){
this.name = name;
this.age = age;
}
以上两个方法:参数列表的顺序也就是两个方法
怎样区分呢?从左到右,类型不同,方法也就不同
这样:从修饰符,返回值,方法名称,参数列表 四个维度描述
工作中,public 和private居多
下一个讲:方法的生命周期,在学习java的路中,搞懂了方法和方法的生命周期,变量的生命周期,java其他的学习也就是比较简单
作用域描述
一个变量,是引用类型的变量,那么经过一个方法后,引用类型变量值可能会改变(主要取决于方法内部有没有修改这个值,通过get,set 或者直接赋值的方式),这个是很多初学者的困惑(本人也是经历过);基本类型则不受改变
工作中java需要掌握哪些内容呢?后面会有一篇介绍一下
,