一、Java方法创建和重载
1、方法的定义
方法就是一段可重复调用的代码段。
2、定义格式:
访问修饰符 返回值类型 方法名( ) {
方法主体
}
eg: public void tell(){ System.out.println(“hello”); } public int tell(){ return 0; }
方法的返回值类型,void类型是不需要返回值的,其他的类型全部是需要有返回值的;
3、方法的重载
方法的重载:方法名称相同,但是参数的类型和个数不同,通过传递参数的个数和类型不同来完成不同的功能。
eg: public static void tell(int i,String j){
}
public static void tell(int i){
}
二、Java方法递归调用
1、递归调用是一种特殊的调用形式,就是方法自己调自己。
eg :
三、类的创建及类与对象的关系
1、类的定义
class 类名称{
属性
方法
}
声明一个类需要通过一个关键字class。
eg : class Person{
String name;
int age;
public void tell(){
}
2、类与对象的关系
类是对某一类事物的描述,是抽象的,概念上的意义,对象是实际存在的该类事物的每一个个体,也被称为实例。
3、内存划分
eg:Person per = new Person() ;// 声明并实例化
创建对象
对象.属性
对象.方法
eg: per.age = 10;
四、了解面向对象
1、程序的发展历程:面向过程、面向对象;
2、解释面向过程和面向对象:
面向过程:不去想做什么样子的盒子,随机取工具制作;
面向对象:先想好做一个什么样的盒子,再去找对应的工具去做;
3、面向对象三大特征
封装性:对外部不可见
继承:扩展类的功能
多态性:方法的重载;对象的多态性
五、Java类方法详解
1、Static关键字
由static修饰的方法称为类方法或静态方法。
如图:
一个java类编译运行的示意图:
2、静态变量
-
- 由static修饰的变量称为静态变量,也称类变量。
- 静态变量定义的位置是在方法之外。
- 静态变量与静态方法都是在类从磁盘加载至内存后被创建的,与类同时存在,同时消亡。
- 静态变量又称类的成员变量,在类中是全局变量,可以被类中的所有方法调用。
- 静态变量的值由JVM自动初始化,一下是各种类变量初始化列表:
eg: static String name;
3、定义无参方法
方法代表一段代码,Java的代码通常都封装在方法中。例如main方法。main方法是Java规定的每个类的代码运行入口。
定义格式:
static void 方法名() {
方法体-方法中的代码
}
为什么使用方法:
-
- Java的代码通常要在方法中编写,即代码封装在方法中。
- 模块化编程:将具有某种功能的代码块封装在一个方法中,不同的代码块由不同的代码封装,利于程序的管理、维护。
- 将具有复用价值的代码封装在方法中,调用该代码块时,只需要调用方法名,这样能有效地减少程序的冗余。
4、定义有参方法
定义格式
static void 方法名(类型1 变量1,类型2 变量2,…){
方法体-方法中的代码
}
带参方法可以接收外界传递的数据,使得方法能处理更加复杂的问题,具有更灵湖的功能。
创建方法快捷方式:选中需要创建方法的代码,(mac上)按住alt+command+m 输入方法名回车。
5、定义带返回值的方法
在Java的Math类中定义了许多具有计算机功能的方法。这些方法也称为函数。
eg:double Math.sqrt(double value)
Java允许程序员自定义这种具有计算机并返回结果的方法。
定义格式:
static void 方法名(参数列表){
方法中的代码
return返回的数据;
}
示例:
定义一个能保留小数点任意位的方法pround,在main方法中调用该方法,保留指定小数点后任意位。
public static void main(String[] args) { System.out.println(pround(3.758,2)); } static double pround(double value,int index) { //1、 计算10的n次方 double pow10 = Math.pow(10,index); //2、定义result变量保存计算结果 double result = value*pow10; //3、对index+1位进行四舍五入 result = Math.round(result); //4、环境value的值 result /= pow10; return result; }
参考:极客学院课程 http://ke.jikexueyuan.com/zhiye/javaweb/