java变量类型
java语言支持的变量类型有:
类变量:独立于方法之外的变量,用static 修饰
实例变量:独立于方法之外的变量,不过没有static 修饰。
局部变量:类的方法中的变量。
package com.Test.java;
public class Variable {
static int allClicks = 0; //类变量
String str = "hello world" ;//实例变量
public void method(){
int i = 0; //局部变量
}
}
实例变量
1.实例变量声明在一个类中,但是在方法、构造方法和语句块之外;
2.当一个对象被实例化之后、每个实例变量的值就跟着确定;
3.实例变量在对象创建的时候创建,在对象被销毁的时候后销毁;
4.实例变量至少应该能 被一个方法、构造方法或者语句块引用。是的外部能够通过这些方式获取实例变量信息
方法:
修饰符 返回值类型 方法名(参数类型 参数名1,参数名2…){
方法体语句;
return返回值;
}
说明 :
修饰符:暂时先写 public static,后面再添加其他的修饰符和作用。
返回值类型:可以是java中任何一种数据类型(基本数据类型和引用数据类型),如果方法执行结束后,没有任何的返回值,返回值类型填写void,那表示没有返回值。
方法名 :自己定义,只要符合命名规则即可,使用驼峰方法明明,即第一个首字母小写,后面的单词首字母大写,例如:sumInt.
参数:
1.没有参数:如果没有参数,参数类型和参数名可以不写,()里面空着就可以。
2.有参数:可以有一个,或者多个参数,多个参数用,隔开
3. 参数类型:就是参数的数据类型,基本数据类型和引用数据类型都可以
4.参数名:就是变量名,符合命名规则即可
5. 方法体语句:就是完成功能的代码。
return:如果方法的返回值类型不是void,那么在方法体中必须使用return语句来返回数据。return语句一旦执行,则方法结束
返回值:方法执行的结果,经结果返回给调用者。
例如:
package com.Test.java;
public class Method {
public static void main(String [] args){
// sumInt(20,30);
int sum1 = sumInt(10,30);
System.out.println(sum1);
}
/*public static void sumInt(int a , int b){ //这是没有返回值的
int sum = a+b ;
System.out.println(sum);
}*/
public static int sumInt(int a , int b){ //这是有返回值的
int sum = a+b;
return sum;
}
}
编写方法时候 不能在min 方法里面编写 也不能超过类体进行编写。
**
如何调用不同类里面的方法?运行下面代码即可
**
package com.Test.java;
public class Method2 {
public static void main (String [] args){
Method03.m1();
m1();
}
public static void m1(){
System.out.println("m1");
}
}
class Method03{
public static void m1(){
System.out.println("这个是Method03里面的m1");
}
}
方法的调用规则是怎样的呢?看下面代码:
package com.Test.java;
/**
*
* 方法的调用规则:从上往下调用执行的。 切记 方法之间不能相互调用 例如下面的m5 和 m6方法就会出现 java.lang.StackOverflowErro 错误
*
*/
public class Method04 {
public static void m1(){
System.out.println("m1");
}
public static void m2(){
System.out.println("m2");
}
public static void m3(){
System.out.println("m3");
}
public static void m4(){
System.out.println("m4");
}
public static void m5(){
m6();
}
public static void m6(){
m5();
}
public static void main(String [] args){
m1();
m2();
m3();
m4();
m2();
m1();
m5();
}
}
return 的用法你知道吗?
return是用来结束方法的 return之后的语句不会再执行
例如下面代码 运行 即可:
package com.Test.java;
/**
*
- return的用法 return是结束方法的 方法内 return后面的语句不再执行。
*/
public class Method05 {
public static void main(String [] args){
int sum1 = m1(10,20);
System.out.println(sum1);
m2(1);
}
public static int m1(int a , int b){
int sum = a + b ;
return sum;
// 下面的语句是错误的 因为方法内return 之后语句就结束了 不会再执行 所以会报错
// System.out.println(sum);
}
public static boolean m2 (int a){
if(a == 0 ){
return true;
}else{
return false;
}
}
}
你知道方法的(overload)重载吗??看下面代码即可
package com.Test.java;
/**
*
- 方法的重载 : 条件:
-
1.必须是在同一个类里面
-
2.方法名必须相同
-
3.参数列表不同(参数类型不同、参数个数不同、参数顺序不同)
- 注意:
-
1.方法的重载和有无void(返回值类型)没有关系。
-
2.方法的重载和修饰符列表也没有关系(有无static)
*/
public class Method06 {
public static void main(String [] args){
}
//下面两个方法构成重载,原因是:参数个数不同
public static void m1(){
}
public static void m1(int i){
}
//下面两个方法也构成重载,原因是:参数类型不同
public static void m2(int a , int b){
}
public static void m2(short a , short b){
}
//下面两个方法构成重载,原因是:参数顺序不同
public static void m3(int c , long b){
}
public static void m3(long b , int c){
}
//下面不构成重载,原因是重载和返回值类型没有关系
/*public static void m4(){
}
public static m4(){
return 1;
}*/
//下面也不构成重载,原因是重载和修饰符列表不同没有关系
/*public static void m5(){
}
public void m5(){
}*/
}