美文网首页
2020-06-09 变量和函数

2020-06-09 变量和函数

作者: testerPM | 来源:发表于2020-06-09 11:23 被阅读0次

变量:

(1) 根据数据类型分类:
1. 基本数据类型变量 2. 引用数据类型变量

(2) 根据变量的位置分类:
1. 局部变量 2. 全局变量(也叫成员变量)

局部变量举例:

(1) 定义在方法中的变量

下面代码 ,第二行会报错 age cannot be resolved to a variable意思是: age不能被解析成一个变量
分析:age定义在main方法中,所以是局部变量,而局部变量的作用域是:变量定义之后,方法结束之前-》所以输出age语句在age定义之前会报错,只能在定义之后引用

//1  public static void main(String[] args) {
    //2     System.out.println(age);
        //3 int age = 10;
         //4 System.out.println(age);
    }

下面代码,在myFuction()方法中引用age,也会报错


    public static void main(String[] args) {

        int age = 10;
    }

    public void myFuction() {
        //age定义在main方法中是局部变量,只能作用在main方法体中
        //main方法体之外是不能被引用的
        System.out.println(age);//此处会报错
    }

(2) 定义在代码块中 的变量
一对花括号括起来的就是代码块
代码块中定义的变量作用范围: 定义之后,代码块结束之前
如下代码,在代码块之外输出age2语句会报错,因为age2只能作用在代码块中


       {
            int age2 = 20;
            
        } 
            System.out.println(age2);

(3) 方法的形式参数变量
作用域: 整个方法内
如下面main方法上的变量args,在方法体中输出此变量,代码不会报错,可以引用

    public static void main(String[] args) {
        System.out.println(args);

    }

总结:

image.png image.png

(1)局部变量要初始化

上图总结中提到,方法内和代码块中定义的局部变量,在使用之前,必须要初始化。举例如下:

在main方法中定义一个局部变量但未初始化,所以下图会有黄色波浪线警告-》 The value of the local variable a is not used意思是变量不能被使用


image.png

如果必须要使用,如下图,会报错-》The local variable a may not have been initialized意思是未初始化

image.png

上图点击蓝色字体 Initialize variable 会自动初始化a,默认为0

    public static void main(String[] args) {
        int a = 0 ;
        System.out.println(a);

    }

(2)局部变量不能添加修饰符
如下图给局部变量a加 public 会报错


image.png

全局变量

全局变量是在类范围内定义的变量,也称为成员变量,或类属性
全局变量特点:

  1. 可以有修饰符,也可以没有修饰符
    public ,protected,默认修饰符,private

  2. 定义在函数外部

  3. 作于域为整个类

  4. 可以不用初始化,也可以初始化,如果没有初始化,则默认该数据类型的默认值

(1)静态的全局变量
静态方法只能引用静态变量,使用普通全局变量会报错

public class Var {
    static int a;//静态全局变量也叫静态成员属性

    public static void main(String[] args) {// 类级别的静态方法
        System.out.println(a);// 没有初始化,默认输出为0

    }

}

(2)普通全局变量

public class Var {
    public int b;//普通的全局变量也叫对象成员属性,对象属性
        int a;//普通全局变量
    public void myFuction() {//对象方法也叫实例方法
        System.out.println(b);

    }
}

函数(也叫方法)

函数:完成功能或者解决某个问题的代码块,是可以重复调用的
语法:
函数分类:(1)普通方法: 包括静态(static)方法和实例方法(或者叫对象方法)(2)构造方法

修饰符  函数返回值类型  函数名(参数类型  参数名......){
   函数体......
} 


修饰符: public->所有地方都可以引用(本类,子类,不同包,同包都可以引用)
private->只能本类中使用

返回值类型:可以是基本类型( int ,boolean .......)也可以是引用数据类型(String.....)

函数名:小驼峰命名->第一个单词首字母小写)
参数: 完成功能需要用到的数据
参数类型:可以是基本数据类型也可以是引用数据类型

具体语法解释见下图:


image.png

需求:完成2个整数的加法运算

第一步:定义一个功能方法

    public int sum(int a, int b) {
        int add = a + b;
        return add;

    }

第二步:函数(方法)调用

  1. 静态方法调用非静态方法-》这种是不允许的,编译会报错
    public static int sum(int a, int b) {
        sayHello();//静态方法调用非静态方法,会报错
        int add = a + b;
        return add;

    }

    public void sayHello() {
        System.out.println("hello");

    }


解决办法:

  1. sayHello()加静态属性-》静态调用静态:类名.方法名()
    (注意:类名也可以不用加)
  2. 不加静态属性,通过创建对象来调用
    语法:
//创建对象
//通过new 调用类的构造方法 -》即类名 ()来创建对象实例
类名   实例名=new  类名();
// 调用对象方法(或实例方法)
   变量名.方法名();

2.非静态方法可以调用静态方法: 类名.方法名()

    public int sum(int a, int b) {
        Var.sayHello();//非静态方法调用静态方法
        int add = a + b;
        return add;

    }

    public static void sayHello() {
        System.out.println("hello");

    }

3.非静态方法可以相互调用,不需要创建对象: 方法名()

    public int sum(int a, int b) {
        sayHello();
        int add = a + b;
        return add;

    }

    public void sayHello() {
        System.out.println("hello");

    }

函数调用注意事项

image.png

面向对象事例解释

(1)创建一个鹦鹉类

public class Parrort {
    public String color;// 蓝色,绿色,红色.....
    public String type;// 类型:金刚鹦鹉,虎皮鹦鹉
    public int age;

    /**
     * 行为:学舌,说话,吃饭,睡觉-》程序里体现的是功能
     * 
     * @param content
     */
    public void say(String content) {
        System.out.println(content);
    }

}

(2)创建一个测试类

public  class test{

public static void main(String[] args) {
        //调用构造方法创建对象
      Parrort   p = new Parrort();
        //对象属性赋值
          p.color="红色";
          p.type="金刚鹦鹉";
          p.age=1;
         //方法调用
          p.say("hello");
}  


}

相关文章

  • 2020-06-09 变量和函数

    变量: (1) 根据数据类型分类:1. 基本数据类型变量 2. 引用数据类型变量 (2) 根据变量的位置分...

  • 第一章 灵活的javascript

    1。 用对象来收编变量和函数,减少全局变量数,防止变量和函数覆盖。 2。可以使用类来收编变量和函数:

  • Kotlin | 2.Kotlin基础

    声明函数、变量、类、枚举以及类型Kotlin中的控制结构智能转换抛出和处理异常 函数学习 函数和变量 函数 变量 ...

  • 变量和函数

    可以使用下划线来增强可读性(Kotlin1.1版本开始支持)val oneMillion = 1_000_000v...

  • 变量和函数

    变量的作用域 通过上述的程序简单的表达作用域,我们来一道例题学习学习,还有c语言毕竟是一门程序语言,希望大家在编译...

  • 变量和函数

    变量 Kotlin中声明变量有两种关键字 val 和 var val (value的简写)用来声明一个不可变的变量...

  • Cloneable接口

    前置知识 Java在处理对象和变量时是不同的.变量传入函数实际上是引用传入函数内,在函数内的变量和函数外传入的变量...

  • 前端面试题

    闭包1.函数嵌套函数--设计私有方法和变量。2.函数内部可以应用外部参数和变量--避免全局变量污染。3.参数和变量...

  • 【Kotlin 】Kotlin基础

    函数和变量函数 变量可变变量和不可变变量 val - 不可变引用。 相当于Java的final变量。var - 可...

  • 菜鸟学习javaScript9

    11 变量和参数深入了解 变量 全局变量:在函数外面声明的变量。 局部变量:在函数内部声明的变量,只有在函数内部使...

网友评论

      本文标题:2020-06-09 变量和函数

      本文链接:https://www.haomeiwen.com/subject/rukstktx.html