zoukankan      html  css  js  c++  java
  • JAVA学习之路 (五) 类

    java类的学习

    先上一个代码

    package bankCard;
    import java.util.Scanner;
    
    // 银行卡类
    public class bankCard {
        // 静态变量
        static String host = "www.gcsn.site";
        // 成员变量
        private static int ID; // 账号
        private double blance; // 余额
        
        // 构造函数
        public bankCard() {
            // 无参构造函数
        }
        public bankCard(int id, double money) {
            //有参构造函数
            ID = id;
            blance = money;
        }
        
        // 成员函数(共有) / 成员方法
        public double intId() {
            // 存钱
            System.out.println("请输入您要存的钱数,只能是整钱");
            Scanner write_in = new Scanner(System.in);
            // 局部变量
            double money = write_in.nextInt();
            this.blance +=money;
            System.out.println("您的ID卡号为"+ID+"的账户存入"+money+"元余额为"+blance);
            
            return blance;
        }
        // 成员函数(共有)
        public double outId() {
            // 取钱
            System.out.println("请输入您要取出的钱数,只能是整钱");
            Scanner write_in = new Scanner(System.in);
            double money = write_in.nextInt();
            if(money > blance) {
                System.out.println("您的余额不足!当前余额为"+blance);
            }else {
                this.blance -=money;
                System.out.println("您的ID卡号为"+ID+"的账户取出"+money+"元,剩余余额为"+blance);
            }
            
            return blance;
        }
        
        public static void main(String [] args) {
            // 推荐使用类来访问
            System.out.println("static-----" +bankCard.host);
            System.out.println("static-----" +host); // 静态成员函数可以直接访问静态变量
            bankCard b1 = new bankCard(1234, 2000.00);
            b1.intId();
            b1.outId();
        }
    }
    

    成员变量和局部变量

    clipboard.png

    clipboard.png

    成员变量和局部变量的区别

    • 作用域不同
    局部变量只能在定义它的方法内使用。
    成员变量则是可以在整个类内都可以使用。
    • 初始值不同
    java会给成员变量一个初始值,
    java不会给局部变量一个初始值(必须自己初始化)。
    • 两类变量同名时,局部变量具有更高的优先级

    构造方法

    var car = new Car();
    
    // 通常我们都会new 实例化一个对象,其实new后面跟的就是构造方法
    使用new + 构造方法 来实例化一个新的对象。
    构造方法是定义在类中的,用来初始化一个对象。
    构造方法必须于类名相同,且没有返回值。
    
    当没有构造方法时,系统会自动添加一个无参的构造方法;
    如果自定义了一个构造方法,那么系统将不会为我们创建无参的构造方法了,也就无法调用无参的构造方法。
    
    构造方法的重载:
    方法名相同,但是参数不同的多个方法,调用的时候会根据不同的参数来选择相应的构造函数。

    clipboard.png

    类的成员方法

    1 类的成员方法的定义

    clipboard.png

    Java 中的 static 使用之【静态变量】

    我们可以基于一个类创建多个该类的对象,每个对象都拥有自己的成员,互相独立。然而在某些时候,我们更希望【该类所有的对象共享同一个成员】。此时就是 static 大显身手的时候了!!

    Java 中被 static 修饰的成员称为【静态成员或类成员】。它属于整个类所有,而不是某个对象所有,即被类的所有对象所共享。静态成员可以使用类名直接访问,也可以使用对象名进行访问。当然,鉴于他作用的特殊性更推荐用类名访问~~

    • 静态成员属于整个类,当系统第一次使用该类时,就会为其分配内存空间直到该类被卸载才会进行资源回收!~~
    public class HelloWorld {
        
        // 定义静态变量,保存班级名称
        static String host = "www.gcsn.site";
    
        public static void main(String[] args) {
            HelloWorld.host = 'www.baidu.com';
            // 访问静态变量,输出班级名称
            System.out.println("static-----" +HelloWorld.host);
        }
    }

    clipboard.png

    Java 中的 static 使用之【静态方法】

    与静态变量一样,我们也可以使用 static 修饰方法,称为【静态方法或类方法】。其实之前我们一直写的 main 方法就是静态方法。

    clipboard.png

    1. 静态方法可以直接调用静态变量,但是不能直接调用非静态变量

    clipboard.png

    如果希望在静态方法中调用非静态变量,可以通过创建类的对象,然后通过对象来访问非静态变量。如

    clipboard.png

    2、 在普通成员方法中,则可以直接访问同类的非静态变量和静态变量,

    clipboard.png

    3、 静态方法中不能直接调用非静态方法,需要通过对象来访问非静态方法。

    clipboard.png

    总结

    静态方法: 能够直接调用静态成员,不可以直接调用非静态成员, 不能够直接调用非静态方法
    普通方法, 既可以直接访问静态变量又可以访问非静态变量

    Java 中的初始化块和静态初始化块

    clipboard.png

    如果使用 static 修饰初始化块,就称为静态初始化块。

    静态初始化块只在类加载时执行,且只会执行一次,同时静态初始化块只能给静态变量赋值,不能初始化普通的成员变量。
    • 来看一个例子

    clipboard.png

    clipboard.png

  • 相关阅读:
    Delphi XE5 android 蓝牙通讯传输
    Delphi XE5 android toast
    Delphi XE5 android openurl(转)
    Delphi XE5 如何设计并使用FireMonkeyStyle(转)
    Delphi XE5 android 捕获几个事件
    Delphi XE5 android listview
    Delphi XE5 android 黑屏的临时解决办法
    Delphi XE5 android popumenu
    Delphi XE5 android 获取网络状态
    Delphi XE5 android 获取电池电量
  • 原文地址:https://www.cnblogs.com/twodog/p/12136229.html
Copyright © 2011-2022 走看看