Java菜鸟学习笔记--面向对象篇(五):方法
2013-07-16 12:23
686 查看
方法格式
[修饰符1 修饰符2 …..] 返回值类型 方法名( 形式参数列表 ){Java 语句;… … …
}
语法解释:
形式参数:在方法被调用时用于接收外界输入的数据。
实参:调用方法时实际传给方法的数据。
返回值:方法在执行完毕后返回给调用它的环境的数据。
返回值类型:事先约定的返回值的数据类型,无返回值,必须给出返回类型viod。
Java语言中使用下述形式调用方法:对象名.方法名(实参列表)
实参的数目、数据类型和次序必须和所调用方法声明的形式列表匹配。
return语句中止方法的运行并指定要返回的数据。
方法区分与特点
方法不能独立定义,要在类体里里面从逻辑上来看,方法要么属于类本身(类方法),要么属于类的一个对象(对象方法)
方法永远不能独立执行,执行方法必须使用类和对象作为调用者
没有static修饰的方法则属于对象,有static标识的则属于类本身
示例.
1.对比静态方法和动态方法class Person{ private int age; private double number; Person(int age,double number){ this.age=age; this.number=number; } public void show(){ System.out.println("这是对象方法"); System.out.println("age= "+age); System.out.println("number= "+number); } public static void say(String some){ System.out.println(some); } } public class PrimitiveTest{ public static void main(String[] agrs){ //1.定于类方法和对象方法 Person.say("你好,这个是类方法");//类方法直接诶 类名.方法名() Person yg=new Person(18,114.2); //对象方法 对象.方法名() yg.show(); /*输出: 你好,这个是类方法 这是对象方法 age= 18 number= 114.2 */ } }
方法的参数传递机制
Java中方法中参数的传递方式只有一种:值传递(就是将实参的赋值品传递给方法内接受的形参)1.传递基本类型的代码
class Person{ static void swap(int a,int b){ int temp=a; a=b; b=temp; System.out.println("swap栈区中 a= "+a+" b="+b); } static void say(String word){ System.out.println(word); } public class test{ public static void main(String[] agrs){ Person.say("1.测试传递基本类型参数"); int a=100; int b=321; Person.swap(100,321); System.out.println("main栈中 a= "+a+" b= "+b); /*输出: 1.测试传递基本类型参数 swap栈区中 a= 321 b=100 main栈中 a= 100 b= 321 */ } }
2.传递引用类型的代码
class Person{ static void objswap(Warehouse one){ int objtemp=one.a;//one.a one.b全部是堆中的对象的数据成员,objtemp是栈中的变量 one.a=one.b; one.b=objtemp; System.out.println("obj交换后 a= "+one.a+" b="+one.b); } static void say(String word){ System.out.println(word); } } class Warehouse{ int a; int b; Warehouse(){} Warehouse(int a,int b){ this.a=a; this.b=b; } } public class test{ public static void main(String[] agrs){ Person.say("1.测试传递引用类型参数"); Warehouse one=new Warehouse(123,456); System.out.println("交换前,one.a= "+one.a+" one.b= "+one.b); Person.objswap(one);//传过去为指向堆中对象的指针的副本。形参接受副本,还是指向堆中的同一个对象 System.out.println("交换后,one.a= "+one.a+" one.b= "+one.b); /* 1.测试传递引用类型参数 交换前,one.a= 123 one.b= 456 obj交换后 a= 456 b=123 交换后,one.a= 456 one.b= 123 */ } }
Main()方法
在java中,main()方法是java应用程序的入口方法。java虚拟机通过main方法找到需要启动的运行程序,并且检查main函数所在类是否被java虚拟机装载。如果没有装载,那么就装载该类,并且装载所有相关的其他类。因此程序在运行的时候,第一个执行的方法就是main()方法。通常情况下,如果要运行一个类的方法,必须首先实例化出来这个类的一个对象,然后通过"对象名.方法名()"的方式来运行方法,但是因为main是程序的入口,这时候还没有实例化对象,因此将main方法声明为static的,这样这个方法就可以直接通过“类名.方法名()”的方式来调用。
每个类都可以拥有main()方法,不管这个类是否声明为public
//测试每个类的main方法的调用 package me.testmain; public class Testmain{ public static void main(String[] args){ System.out.println("这个class Testmain()方法"); } } class Dog{ public static void main(String[] args){ System.out.println("这是 Dog 类的main方法"); } }
编译无问题后,我们可以这样运行测试
/*输出: yg@Gander:~/Desktop/code$ java me.testmain. me.testmain.Dog me.testmain.Testmain yg@Gander:~/Desktop/code$ java me.testmain.Testmain 这个class Testmain()方法 yg@Gander:~/Desktop/code$ java me.testmain.Dog 这是 Dog 类的main方法 yg@Gander:~/Desktop/code$ *///说明每个class都可以拥有main函数,而且不管是否public都可以java xxx
作者:YangGan
出处:http://blog.csdn.net/incyanggan
本文基于署名
2.5 中国大陆许可协议发布,欢迎转载,演绎或用于商业目的,但是必须保留本文的署名Yanggan(包含链接).
相关文章推荐
- Java菜鸟学习笔记--面向对象篇(十一):&abstract方法/类
- Java菜鸟学习笔记--面向对象篇(六):static修饰符
- Java菜鸟学习笔记--面向对象篇(八):成员变量和局部变量
- Java菜鸟学习笔记--面向对象篇(四):This指针
- Java菜鸟学习笔记--面向对象篇(十六):Object类方法
- Java菜鸟学习笔记--面向对象篇(十八):对象转型&多态
- Java菜鸟学习笔记--面向对象篇(十六):Object类方法
- Java菜鸟学习笔记--面向对象篇(十五):Wrapper Class包装类
- Java菜鸟学习笔记--面向对象篇(十五):Wrapper Class包装类
- Java菜鸟学习笔记--面向对象篇(三):构造器&重载
- Java菜鸟学习笔记--面向对象篇(七):简易继承
- Java菜鸟学习笔记--面向对象篇(十四):继承与组合
- Java菜鸟学习笔记--面向对象篇(十二):Package简单理解
- Java菜鸟学习笔记--面向对象篇(十八):对象转型&多态
- Java菜鸟学习笔记--面向对象篇(十三):interface
- Java菜鸟学习笔记()--面向对象篇(七):Wrapper Class包装类
- Java菜鸟学习笔记--面向对象篇(九):Oerride与super限定
- Java菜鸟学习笔记--面向对象篇(十):有爱的打印机实例
- Java菜鸟学习笔记--面向对象篇(十七):Final修饰符
- Java菜鸟学习笔记--面向对象篇(四):This指针