zoukankan      html  css  js  c++  java
  • 《Java基础知识》Java成员变量,成员方法,构造方法和析构方法

    一 成员变量

    成员变量是指类的一些属性定义,标志类的静态特征,它的基本格式如下:

    【访问修饰符】【修饰符】【类型】【属性名称】= 【初始值】

    访问修饰符:public(公共的);protected(受保护的);无修饰符和private(私有的)。

    修饰符:对属性特征的描述:如static,final 等等。 

    类型:属性的数据类型,可以是任意类型。 

    属性名称:任何合法标识符。 

    初始值:赋值给属性的初始值。 

    举例:public static int index = 0;

    二 成员方法

    成员方法就是对象所具有的动态功能。基本格式如下:

    【访问修饰符】【修饰符】【返回值类型】【方法名称】【参数】【异常】【方法体】

    访问修饰符:public(公共的);protected(受保护的);无修饰符和private(私有的)。

    修饰符:对属性特征的描述:如static,final,abstract 等等。

    返回值类型:方法返回数据的类型。

    方法名称:任何合法标识符。

    参数:可以有多个,使用逗号分隔。

    异常:关键字:throws 【具体异常】

    方法体:该方法具体实现功能的地方。

    案例:创建一个Book类

    public class Book {
    
        private int id;        //成员变量
        private String name;   //成员变量
    
        /**
         * 成员方法
         * @return
         */
        public int getId() {
            return id;
        }
    
        /**
         * 成员方法
         * @return
         */
        public void setId(int id) {
            this.id = id;
        }
    
        /**
         * 成员方法
         * @return
         */
        public String getName() {
            return name;
        }
    
        /**
         * 成员方法
         * @return
         */
        public void setName(String name) {
            this.name = name;
        }
    }

    三 构造函数

    构造函数:是特殊的成员方法,他的作用是创建对象并初始化成员变量。

    构造函数定义规则:构造方法的方法名,必须和类名一致。

    每个类都有一个隐藏的无参构造函数。

    public class Dog{
    
        /**
         * 带参构造函数
         * @param name
         * @param age
         */
        public Dog(String name,int age){
            this.age = age;
            this.name = name;
        }
    
        /**
         * 无惨构造函数
         */
        public Dog(){}
    
        String name;
        int age;
    
        public void ptint(){
            System.out.println("name = "+this.name+";age = "+age);
        }
    
        public static void main(String[] args) {
            new Dog().ptint();
            new Dog("花花",9).ptint();
        }
    }

    运行结果:

    四 析构函数

    析构函数:finalize();

    垃圾回收器准备释放内存的时候,会先调用finalize()。

    在 Java 中,当你创建一个对象时,Java 虚拟机(JVM)为该对象分配内存、调用构造函数并开始跟踪你使用的对象。当你停止使用一个对象(就是说,当没有对该对象有效的引用时),JVM 通过垃圾回收器将该对象标记为释放状态。

    当垃圾回收器将要释放一个对象的内存时,它调用该对象的finalize() 方法(如果该对象定义了此方法)。垃圾回收器以独立的低优先级的方式运行,只有当其他线程挂起等待该内存释放的情况出现时,它才开始运行释放对象的内存。(事实上,你可以调用System.gc() 方法强制垃圾回收器来释放这些对象的内存。)

    在以上的描述中,有一些重要的事情需要注意。首先,只有当垃圾回收器释放该对象的内存时,才会执行finalize()。如果在 Applet 或应用程序退出之前垃圾回收器没有释放内存,垃圾回收器将不会调用finalize()。

    其次,除非垃圾回收器认为你的 Applet 或应用程序需要额外的内存,否则它不会试图释放不再使用的对象的内存。换句话说,这是完全可能的:一个 Applet 给少量的对象分配内存,没有造成严重的内存需求,于是垃圾回收器没有释放这些对象的内存就退出了。

    显然,如果你为某个对象定义了finalize() 方法,JVM 可能不会调用它,因为垃圾回收器不曾释放过那些对象的内存。调用System.gc() 也不会起作用,因为它仅仅是给 JVM 一个建议而不是命令。

    This moment will nap, you will have a dream; But this moment study,you will interpret a dream.
  • 相关阅读:
    【转载】STL之priority_queue
    数据结构作业——直通车(并查集)
    Codeforces Round #342 (Div. 2) D. Finals in arithmetic(想法题/构造题)
    Size Balance Tree(SBT模板整理)
    平衡二叉查找树(AVL)的理解与实现
    查找树ADT——二叉搜索树
    (转载)通过金矿模型介绍动态规划
    动态规划(DP)基础
    hdu 1969 Pie(二分查找)
    poj 3104 Drying(二分查找)
  • 原文地址:https://www.cnblogs.com/jssj/p/11279462.html
Copyright © 2011-2022 走看看