本文目录一览:
Java中如何调用函数和自定义函数
调用函数
System.out.println("hello world");
println即为函数,out为是输出对象,System为java系统类。
java是面向对象语言,调用非静态方法时,需要创建一个类的对象才能调用方法;
调用静态方法时,直接用类名调用即可。
import java.util.Array; //调用其他包下的方法时需要导包
Array.sort(arr); //Array是工具类,方法都为静态方法
定义函数
修饰符 返回值类型 方法名(参数类型 参数名){
...
方法体
...
return 返回值
;}
方法包含一个方法头和一个方法体。下面是一个方法的所有部分:
修饰符:修饰符,这是可选的,告诉编译器如何调用该方法。定义了该方法的访问类型。
返回值类型 :方法可能会返回值。returnValueType 是方法返回值的数据类型。有些方法执行所需的操作,但没有返回值。在这种情况下,returnValueType 是关键字void。
方法名:是方法的实际名称。方法名和参数表共同构成方法签名。
参数类型:参数像是一个占位符。当方法被调用时,传递值给参数。这个值被称为实参或变量。参数列表是指方法的参数类型、顺序和参数的个数。参数是可选的,方法可以不包含任何参数。
方法体:方法体包含具体的语句,定义该方法的功能。
注意: 在一些其它语言中方法指过程和函数。一个返回非void类型返回值的方法称为函数;一个返回void类型返回值的方法叫做过程。
拓展内容
java
Java源程序(.java文件)——java字节码文件(.class文件)——由解释执行器(java.exe)将字节码文件加载到java虚拟机(jvm)——字节码文件(.class)就会在java虚拟机中执行。
Java的基本包
java.lang 其中包含有:
接口:Comparable、Cloneable、Runable等
类:八个基本数据类型封装类、Math、Runtime、Object、String、StringBuffer、Thread、Exception等
java怎样在主函数里定义函数
main函数是一个程序的入口,也是出口,main函数其实就是类里的一个方法,方法只能在类里声明了,所以maion函数必须声明在一个类里,一个程序里只有一个main函数,因为类与类之间是相与调用的。一个程序从开始运行就会先找main函数,然后再一步一步的执行,如果有多个main那么程序就会报错,因为他不知道该从那个门口(main函数)进,然而类为什么可以有多个呢,你还记的JAVA的三大基本特征么,即封装,继承,多态。而封装就是我们所说的类,他是把所有相同的属性,方法归纳到一起,即组成一个类。这样给你打个比方吧
main函数所在的一个类就相当于一个城市,而main函数就是城市的一个入口,并且只有一个入口,也可是出口,而城市中又有许多小区,我们叫他为类吧,而小区里的房子又基本相同,这也就验证了我们把同一类物品归为一类,即封装在一个类里,而每个小区又不同,这又验证了每一个类的实现功能 是不同的,而类与类这间的调用则是用NEW关键字,这个你应该会吧,继承,多态我就不用说
主函数的一般写法如下:
public static void main(String[] args){…}
下面分别解释这些关键字的作用:
(1)public关键字,这个好理解,声明主函数为public就是告诉其他的类可以访问这个函数。
(2)static关键字,告知编译器main函数是一个静态函数。也就是说main函数中的代码是存储在静态存储区的,即当定义了类以后这段代码就已经存在了。如果main()方法没有使用static修饰符,那么编译不会出错,但是如果你试图执行该程序将会报错,提示main()方法不存在。因为包含main()的类并没有实例化(即没有这个类的对象),所以其main()方法也不会存。而使用static修饰符则表示该方法是静态的,不需要实例化即可使用。
(3)void关键字表明main()的返回值是无类型。
**(4)参数String[] args,这是本文的重点。
第一、程序使用者可以在命令行状态下向某个类传递参数。看下面的例子:
public class ArgsDemo {
public static void main(String[] args) {
String str = new String();
for (int i = 0; i args.length; i++) {
System.out.println(args[i]);
str += args[i];
}
System.out.println(str);
}
}
使用javac ArgsDemo.java命令生成ArgsDemo.class文件;然后使用“java ArgsDemo 参数一 参数二 参数三 …”的格式向ArgsDemo类传递参数。该示例程序将首先输出参数,然后输出所有参数的和。比如java ArgsDemo a b c,将得到这样的输出:
a
b
c
abc
需要注意的是,如果这里的循环条件不是i 5,则在命令行中输入的参数必须是5个,否则将会报错,错误类型为:
Exception in thread “main” java.lang.ArrayIndexOutOfBoundException:3
at ArgsDemo.main(ArgsDemo.java:5)
第二、可以在另一个类中向包含main()的类传递参数,如下例:
public class A {
public static void main(String[] args)
{
for(int i=0;i
System.out.println(args[i]);
}
}
public class B {
public static void main(String[] args)
{
c = new A();
String[] b = {"111","222","333"};
c.main(b);
}
}
首先定义一个class A,在A中定义一个main()函数,在该函数中输出参数args。然后定义一个classB,在B中初始化一个A的实例c,然后向c传递参数,并且调用c的main方法打印出传入的参数值。输出结果如下:
111
222
333
由于main()函数是静态函数,即不需要实例化也能使用,所以B使用下面的写法也能完成相同的功能:
public class B {
public static void main(String[] args)
{
//A c = new A();
String[] b = {"111","222","333"};
A.main(b);
}
}
总结:参数args的主要作用是为程序使用者在命令行状态下与程序交互提供了一种手段。此外在其他类中直接使用main()函数,并传递参数也是可行的,虽然这种方法不太常用,但毕竟为我们提供了一种选择。
(以上观点均系个人理解,不准确的地方欢迎批评指正。实例程序均调试通过)
对static的理解还有问题。main方法的代码是存在方法区的。方法不管是否为static的,都存在方法区。
JAVA中定义了函数,有返回值,怎么调用?
你可以这样理解add(a,b)中向ab传值,在方法add中处理ab 然后得出一个数,例如sum = a+b;,然后这个方法就返回这个数,当然这个数的类型是你定义的。然后在某个地方你要用到这个sum,你就可以这样用 Sums = add(a,b);可以这样用,其实有返回类型的方法你可以认为它就是一个值来用就行了。\x0d\x0a\x0d\x0apublic static void main(String args[]){\x0d\x0a System.out.println("add(a,b)当a=1,b=2的时候,a+b的值为"+add(1,2));//有返回类型的方法可以直接看成是一个值\x0d\x0a\x0d\x0a}
Java写一个自定义函数
为了帮助网友解决“java创建自定义函数”相关的问题,中国学网通过互联网对“java创建自定义函数”相关的解决方案进行了整理,用户详细问题包括:; /.println(arrs.这里是返回最大值
return 8;;/我想自定义getmax函数的话怎么做
}
public int getMax(){
/.getMax);/,7.outpublic class test{
public static void main(String[] args){
int arrs[] =new int[]{1;
}
}
我想java实现javascript 里面 prototype 这样的原型对象,5.,5;
System,1},8,4,具体解决方案如下:
解决方案1:
println(getMax(arrs)); a) a = arrs[i].length; arrs; i
}
public static int getMax(int[] arrs){
int a = 0;
for (int i = 0,7.outpublic class TEST{
public static void main(String[] args){
int[] arrs =new int[]{1;
}
return a,5; i++) {
if(arrs[i] ,5;
System,1},8,4
解决方案2:
谢谢。。我能不能 .length() 这样的函数自定义创建呢?
解决方案3:
jdk提供一些常用类跟方法方便我们写程序,自己写也一样的
arrs.length Array里面封装好的实例属性
解决方案4:
谢谢!
解决方案5:
7,5;
}
public static void main(String[] args){
int arrs[] =new int[]{1:
public static int getMax(int[] arrs){
/.这里是返回最大值
return 8;/:
public static void main(String[] args){
int arrs[] =new int[]{1..;
System,4,4; ///,1}.out;
System; /,5,5,5;.,7,8.;我想自定义getmax函数的话怎么做
}
改为public int getMax(){
/,1}.out;;/.getMax),8.这里是返回最大值
return 8;
}
改为.println(getMax(arrs)).println(arrs
解决方案6:
方法没有修饰符的例子:
String getName(){ //无修饰符,无参数,有String类型返回值
return "张3";
}
void getName(){ //无修饰符,无参数,无返回值
system.out.println("张3");
}
int add(int a,int b){ //无修饰符,有2个整型参数,有整型返回值
return a+b;
}
方法有2种修饰符
1)有public、protected、private三种显示的访问控制修饰符
2)还可以有static 、 final 、abstract 这三个修饰符
方法含有修饰符的例子:
public String getName(){ //public修饰符(公有方法),无参数,有String类型返回值
return "张3";
}
private void getName(){ //无修饰符(私有方法),无参数,无返回值
system.out.println("张3");
}
Java构造函数里面可以定义函数吗
可以,因为每个类都有一个无参数的默认构造函数
比如
class
c{}
则c
c=new
c();是可以执行的
因为其中有个默认的无参数构造函数
但是如果是下面的情况则不能这样用
比如
class
c{
public
c(int
i){}
}
这样c
c=new
c();是错误的,因为已经有了构造函数,则不能再使用默认构造函数了..所谓默认构造函数,就是在默认状态下(无构造函数)可以被使用的.
当然你也可以如果在上面的情况下,你可以写出无参构造函数.(当然这就不是默认构造函数了)
class
c{
public
c(){}
public
c(int
i){}
}