美文网首页
Java类的定义

Java类的定义

作者: Zz鱼丸 | 来源:发表于2019-06-18 11:30 被阅读0次

    类是 Java 中的一种重要的复合数据类型,也是组成 Java 程序的基本要素,因为所有的 Java 程序都是基于类的。本节介绍如何定义类。
    完整语法如下:

    [public][abstract|final]class<class_name>[extends<class_name>]
    [implements<interface_name>]
    {
        //定义属性部分
        <property_type><property1>;
        <property_type><property2>;
        <property_type><property3>;
        …
        //定义方法部分
        function1();
        function2();
        function3();
        …
    }
    

    上述语法中各关键字的描述如下。

    • public:表示“共有”的意思。如果使用 public 修饰,则可以被其他类和程序访问。每个 Java 程序的主类都必须是 public 类,作为公共工具供其他类和程序使用的类应定义为 public 类。
    • abstract:如果类被 abstract 修饰,则该类为抽象类,抽象类不能被实例化,但抽象类中可以有抽象方法(使用 abstract 修饰的方法)和具体方法(没有使用 abstract 修饰的方法)。继承该抽象类的所有子类都必须实现该抽象 类中的所有抽象方法(除非子类也是 抽象类)。
    • final:如果类被 final 修饰,则不允许被继承。
    • class:声明类的关键字。
    • class_name:类的名称。
    • extends:表示继承其他类。
    • implements:表示实现某些接口。
    • property_type:表示成员变量的类型。
    • property:表示成员变量名称。
    • function():表示成员方法名称。

    类名应该以下划线(_)或字母开头,最好以字母开头;第一个字母最好大写,如果类名由多个单词组成,则每个单词的首字母最好都大写;类名不能为 Java 中的关键字

        public class Person
        {
            private String name;    // 姓名
            private int age;    // 年龄
            public void teli()
            {   //定义说话的方法
                System.out.println(name+"今年"+age+"岁!");
            }
        }
    

    Java类的属性:成员变量的定义和声明

    [public|protected|private][static][final]<type><variable_name>
    

    各参数的含义如下。

    • public、protected、private:用于表示成员变量的访问权限。
    • static:表示该成员变量为类变量,也称为静态变量。
    • final:表示将该成员变量声明为常量,其值无法更改。
    • type:表示变量的类型。
    • variable_name:表示变量名称。

    初始化的默认值如下:

    • 整数型(byte、short、int 和 long)的基本类型变量的默认值为 0。
    • 单精度浮点型(float)的基本类型变量的默认值为 0.0f。
    • 双精度浮点型(double)的基本类型变量的默认值为 0.0d。
    • 字符型(char)的基本类型变量的默认值为 “\u0000”。
    • 布尔型的基本类型变量的默认值为 false。
    • 数组引用类型的变量的默认值为 null。

    方法的形参和实参具有以下特点:

    • 形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。因此,形参只有在方法内部有效,方法调用结束返回主调 方法后则不能再使用该形参变量。
    • 实参可以是常量、变量、表达式、方法等,无论实参是何种类型的量,在进行方法调用时,它们都必须具有确定的值,以便把这些值传送给形参。因此应预先用赋值、输入等办法使实参获得确定值。
    • 实参和形参在数量、类型和顺序上应严格一致,否则会发生“类型不匹配” 的错误。
    • 方法调用中发生的数据传送是单向的,即只能把实参的值传送绐形参,而不能把形参的值反向地传送给实参。因此在方法调用过程中,形参的值发生改变,而实参中的值不会变化。

    Java创建对象详解:Java创建对象的几种方法

    1. 使用 new 关键字创建对象
    类名 对象名=new 类名();
    

    调用对象的 clone() 方法
    该方法不常用,使用该方法创建对象时,要实例化的类必须继承 java.lang.Cloneable 接口。调用对象的 clone() 方法创建对象的语法格式如下:

    类名对象名=(类名)已创建好的类对象名.clone();
    
        public class Student implements Cloneable
        {   
            //实现 Cloneable 接口
            private String Name;    //学生名字
            private int age;    //学生年龄
            public Student(String name,int age)
            {    //构造方法
                this.Name=name;
                this.age=age;
            }
            public Student()
            {
                this.Name="name";
                this.age=0;
            }
            public String toString()
            {
                return"学生名字:"+Name+",年龄:"+age;
            }
            public static void main(String[] args)throws Exception
            {
                System.out.println("---------使用 new 关键字创建对象---------");
               
                //使用new关键字创建对象
                Student student1=new Student("小刘",22);
                System.out.println(student1);
                System.out.println("-----------调用 java.lang.Class 的 newInstance() 方法创建对象-----------");
               
                //调用 java.lang.Class 的 newInstance() 方法创建对象
                Class cl=Class.forName("Student");
                Student student2=(Student)cl.newInstance();
                System.out.println(student2);
                System.out.println("-------------------调用对象的 clone() 方法创建对象----------");
                //调用对象的 clone() 方法创建对象
                Student student3=(Student)student2.clone();
                System.out.println(student3);
            }
        }
    

    Java对象的销毁

    1. 对象的引用超过其作用范围。
    2. 对象被赋值为 null。
      3.在 Java 的 Object 类中还提供了一个 protected 类型的 finalize() 方法,因此任何 Java 类都可以覆盖这个方法,在这个方法中进行释放对象所占有的相关资源的操作。

    相关文章

      网友评论

          本文标题:Java类的定义

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