「java接口定义成员函数」Java成员函数
本篇文章给大家谈谈java接口定义成员函数,以及Java成员函数对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、java中的成员变量和成员函数举个例子
- 2、java成员变量成员函数构造函数
- 3、以程序为例,讲解java中包,类,构造函数,成员变量,成员方法,重载,接口,SUPER,继承,多态,static,final等
- 4、java怎样在主函数里定义函数
java中的成员变量和成员函数举个例子
package com.text;
public class Animal {//动物方类
private String Name;//成员变量 名字 私有的
private int Age;//成员变量 年龄 私有的
private String Color;//成员变量 颜色 私有的
-----------------------------
public void Cry(){//成员方法(成员函数) 下面是方法体
System.out.println("我是一只"+this.Name+",颜色是"+this.Color+",我今年"+this.Age+"岁了。");
}
--------------------------------------------
通常情况下一个类还要有构造函数 作用是给成员变量附初始值
-----------------------------------------------------------
public Animal(String Name,int Age,String Color){//动物类的构造函数
this.Name=Name;
this.Age=Age;
this.Color=Color;
}
java成员变量成员函数构造函数
class MyClass{
public MyClass(){//构造函数
}
private String name;//这是成员变量
public String getMyName(){//这是成员函数
private int age=0;//这是局部变量
return this.name
}
}
以程序为例,讲解java中包,类,构造函数,成员变量,成员方法,重载,接口,SUPER,继承,多态,static,final等
您好,
一、成员变量(类或对象的状态)
1、认识成员变量(类或对象的状态)、类变量、实例变量、局部变量、方法参数之间的区别
成员变量(field)是没有定义在代码块(包括初始化块、成员方法)中的变量。成员变量是类变量还是实例变量取决于在其声明中是否使用了static关键字。
类变量在声明是用了static关键字,它的另一个名字叫静态变量、静态成员变量(static field) 。
实例变量是在声明时没有使用static关键字的成员变量,它的另一个名字叫非静态成员变量(non-static field)。
定义在代码块里的变量被称为局部变量(local variable)。
定义在方法声明中的变量叫方法参数。
[java] view plaincopyprint?public class Lesson08 { // 类变量 static String s1 = "类变量"; // 实例变量 String s2 = "实例变量"; // 初始化代码块里的局部变量 { String s3 = "初始化代码块里的局部变量"; System.out.println(s3); } // 静态初始化代码块里的局部变量 static { String s4 = "静态初始化代码块里的局部变量"; System.out.println(s4); } // 方法的参数和方法里的局部变量 public void printString(String s5) { String s6 = "方法里的局部变量"; System.out.println("方法的参数:"+s5); System.out.println(s6); } // 类方法 public static void printString() { String s7="类方法里的局部变量"; System.out.println(s7); } // main方法 public static void main(String[] args) { //调用类方法 Lesson08.printString(); //打印类变量 System.out.println(s1); //创建对象 Lesson08 lesson = new Lesson08(); //打印实例变量 System.out.println(lesson.s2); //调用实例方法 lesson.printString("参数的值"); } }
对于他们之间的区别,我们在以后的学习中你会越来越清晰的。
2、变量的初始化
实例变量一经定义就会有初始值,局部变量定义时不赋初值而直接使用,编译器会报错
[java] view plaincopyprint?public class Lesson08_1 { int i; static int j; { int k; System.out.println(k); } static { int l; System.out.println(l); } public void print(String m){ System.out.println(m); } // main方法 public static void main(String[] args) { int n; System.out.println(n); Lesson08_1 lesson =new Lesson08_1(); lesson.print("m"); } }
运行程序,查看结果:
然后我们再给局部变量都附上初值,再把实例变量和类变量都打印出来看看,代码如下:
[java] view plaincopyprint?public class Lesson08_1 { int i; static int j; { int k=2; System.out.println(k); } static { int l=2; System.out.println(l); } public void print(String m){ System.out.println(m); } // main方法 public static void main(String[] args) { System.out.println(j); int n=2; System.out.println(n); Lesson08_1 lesson =new Lesson08_1(); lesson.print("m"); System.out.println(lesson.i); } }
运行程序,查看结果:
我们看到类变量和实例变量没赋值照样有值打印出来,我们也看到int的初始值是0 。
实例变量和类变量的类型 初始值
整数 0
浮点类型 0.0
字符类型 ‘/u0000′
布尔类型 boolean false
引用数据类型(譬如数组、接口、类) null
二、方法(类或对象的行为)
1、方法
Java中类的行为由类的成员方法来实现。类的成员方法由方法的声明和方法体两部分组成。
修饰符,可选,用于指定谁有权限访问此方法。
返回值类型,必选,用于指定该方法的返回值数据类型;如果该方法没有返回值,则要用关键字 void 进行标示。方法的返回值只能有一个。
参数列表,可以有0到多个,多个参数之间要用逗号隔开,参数的写法形如:String[] args, int age 这样。
方法名,必选,这个……,好吧命名规则是方法名和变量名的首字母要小写,别丢我人,弄个大写方法名出来。
方法体,可选,这个……,
大括号,大括号不写的方法叫抽象方法。
2、属性和方法之间的关系
有句绕口令是这么说的:“状态影响行为,行为影响状态”。你有没有想过这问题,如果每个对象都是从同一个类中生成出来,每个对象如果都一摸一样,那么这个世界是不是太无趣了。好在,我们看到前面的例子中,小狗的大小属性影响了他叫的方式。通过设置狗大小的方法又改变了它的状态。这些属性和方法的细节上的不同导致了,多姿多彩的对象,我们后面还会讲到更多的技术,也会导致更多的多样性。
三、方法重载 overload
Java里可以提供同一个方法的多个不同参数的版本供我们调用,譬如上面的小白,它叫 bark() 的方法有两种,一种是很随意的叫,无拘无束的叫,还有一种是根据它心情的不同来叫,当然我还可以再定义一个方法可以让他根据主人的脸色来叫,我们也可以再定义一个方法,穿的参数是食物,那么它的叫声可能就是边吃边幸福的吼叫了…… 这样一个bark方法就带来了丰富多彩的变化。
在Java 中允许类定义中多个方法的方法名相同,只要它们的参数声明不同即可。这种情况下,该方法就被称为重载(overloaded ),这种方式就叫做方法重载(method overloading )。方法重载是实现程序多样性的一个重要手段。也可以称作多态的一种表现方式。
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接口定义成员函数的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于Java成员函数、java接口定义成员函数的信息别忘了在本站进行查找喔。
发布于:2022-11-30,除非注明,否则均为
原创文章,转载请注明出处。