美文网首页
Java类_包和层次结构

Java类_包和层次结构

作者: YQY_苑 | 来源:发表于2018-08-23 23:04 被阅读0次

    1. 类是一个模板,它描述一类对象的行为和状态
    2. 语义上表达的是一类实体(对象)的抽象
    3. 在Java中的惯例是一个⽂件中存放一个public类
    image.png

    对象

    ▸ 对象:对象是类的⼀个实例
    ▸ 语义上是表达⼀个java类的实体
    ▸ 对象是⼀般情况下Java语⾔⾥的”⼀等公⺠”
    ▸ 对象可以赋值到⼀个变量
    ▸ 对象是通过new语句进⾏创建

    JAVA方法和成员变量

    • 方法:类中定义的该类的实例对象所具有的行为
    • 静态方法: 只属于类本身的方法
    • <返回类型> 方法名(<参数类型> 参数名, …) {代码; return <返回值>;}
    • 一个方法由 “方法名 + 参数类型” 确定
    • 相同方法名,不同参数类型, 是不同的方法 (重载override)
    • 成员变量即对象或类中的变量, 其作用域在类中,或对象中
    • 可以用修饰符控制方法和成员变量的作用域

    修饰符

    1、访问权限修饰符

    Java中,可以使用访问控制符来保护对类、变量、方法和构造方法的访问。Java 支持 4 种不同的访问权限。

    • default (即缺省,什么也不写): 在同一包内可见,不使用任何修饰符。使用对象:类、接口、变量、方法。

    • private : 在同一类内可见。使用对象:变量、方法。 注意:不能修饰类(外部类)

    • public : 对所有类可见。使用对象:类、接口、变量、方法。

    • protected : 对同一包内的类和所有子类可见。使用对象:变量、方法。 注意:不能修饰类(外部类)。

    image.png

    2、非访问修饰符

    • static 修饰符,用来修饰类方法和类变量。

    • final 修饰符,用来修饰类、方法和变量,final 修饰的类不能够被继承,修饰的方法不能被继承类重新定义,修饰的变量为常量,是不可修改的。

    • abstract 修饰符,用来创建抽象类和抽象方法。

    • synchronized 和 volatile 修饰符,主要用于线程的编程。

    1、static 修饰符

    静态变量:static 关键字用来声明独立于对象的静态变量,无论一个类实例化多少对象,它的静态变量只有一份拷贝。 静态变量也被称为类变量。局部变量不能被声明为 static 变量。

    静态方法:static 关键字用来声明独立于对象的静态方法。静态方法不能使用类的非静态变量。静态方法从参数列表得到数据,然后计算这些数据。

    对类变量和方法的访问可以直接使用 classname.variablename 和 classname.methodname 的方式访问。

    如下例所示,static修饰符用来创建类方法和类变量。

    public class InstanceCounter {
       private static int numInstances = 0;
       protected static int getCount() {
          return numInstances;
       }
     
       private static void addInstance() {
          numInstances++;
       }
     
       InstanceCounter() {
          InstanceCounter.addInstance();
       }
     
       public static void main(String[] arguments) {
          System.out.println("Starting with " +
          InstanceCounter.getCount() + " instances");
          for (int i = 0; i < 500; ++i){
             new InstanceCounter();
              }
          System.out.println("Created " +
          InstanceCounter.getCount() + " instances");
       }
    }
    

    以上实例运行编辑结果如下:

    Starting with 0 instances
    Created 500 instances
    

    2、final 变量:

    • final 变量能被显式地初始化并且只能初始化一次。被声明为 final 的对象的引用不能指向不同的对象。但是 final 对象里的数据可以被改变。也就是说 final 对象的引用不能改变,但是里面的值可以改变。

    • final 修饰符通常和 static 修饰符一起使用来创建类常量。

    final 方法
    类中的 final 方法可以被子类继承,但是不能被子类修改。
    声明 final 方法的主要目的是防止该方法的内容被修改。

    如下所示,使用 final 修饰符声明方法。

    public class Test{
      final int value = 10;
      // 下面是声明常量的实例
      public static final int BOXWIDTH = 6;
      static final String TITLE = "Manager";
     
      public void changeValue(){
         value = 12; //将输出一个错误
      }
    }
    

    包和层次结构

    • “包”: 用来表示具有层次结构的命名空间
      • “package com.jirengu.java-system;”
    • 层次结构
      • 包 —> 类 (对象) —> 方法 —> 代码块

    相关文章

      网友评论

          本文标题:Java类_包和层次结构

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