zoukankan      html  css  js  c++  java
  • java基础学习4

    访问修饰符:

    • private: 私有的。只有在类的主体中才可以访问。只能修饰属性和方法,不能修饰类。
    • protected: 受保护的。该类及子类的成员均可以访问,同一个包中的类也可以访问,只能修饰属性和方法不能修饰类
    • public:公共的。该类或非该类均可以访问
    • 默认的:不使用修饰符。只有相同包中的类可以访问。

    static修饰符:

    static修饰符可以修饰变量、方法或代码块

    静态变量:

    • 类中的静态变量属于类,而不属于某个特定的对象
    • 类的静态成员可以与类的名称一起使用,不需要创建类的对象。
    • 静态变量或方法也称为类的变量或方法
    • 不管创建了类的多少示例,整个类中静态变量的副本只有一个。
    • 引用静态变量时建议使用类名来调用
    • 声明为static的变量实质就是全局变量

    静态方法:

    static修饰的方法为静态方法,目的是使该方法独立于类的示例,使用类去访问,也叫类方法。
    特征:

    • 类的静态方法只能访问其他的静态成员,不能访问非静态的成员
    • 静态方法中没有this关键字
    • 静态方法不能覆盖为非静态方法

    静态代码块:

    static int a;
    static {
        a = (int)(100.0 * Math.random());
    }
    
    • 需要通过计算来初始化静态变量,可以声明一个静态块。
    • 静态块在类被加载时执行一次
    • 只能初始化类的静态数据成员

    单态设计模式:

    设计模式:在大量实践中总结和理论化之后优选的代码结构、代码风格、UI及解决问题的思考方式
    单态设计模式:采取一定的方法保证在整个软件系统中,某个类只能存在一个对象实例,并且该类只提供一个取得其对象示例的方法。

    两种方式:

    public class TestSingle {//形式一
        private static final TestSingle onlyone = new TestSingle();
        // private static final 修饰后只能产生一个对象
        private TestSingle() {
            //不能在类的外部使用new但是在类的内部可以
        }
        public static TestSingle getTestSingle() {
            return onlyone;//外面只能通过方法调用活的一个对象
        }
    }
    
    public class Singleton {//形式二
        private static Singleton instance = null;
        public static synchronized Singleton getInstance() {
            if (instance == null) {
                instance = new Singleton();
            }
            return instance;
        }
    }
    

    final修饰符(这里很像const):

    final 修饰符可以修饰类、方法、变量。在修饰不同的对象时是不同的,但是代表不可改变

    • final修饰类
      final 修饰的类不能被子类继承
    • final修饰方法
      • 在方法声明中使用final关键字向编译器表明子类不能覆盖此方法。
      • 在声明类中,一个final方法只能被实现一次
      • 类为final修饰的,那么它的方法隐式的为final方法
    class TestFinal {
        final void f() {}
    }
    class Further extends TestFinal {
        final void f(){}//错误 final方法不能被覆盖
    }
    
    • final 修饰变量:
      • 不可修改变量
      • 只能被初始化一次
      • 实质是一个常量

    abstract修饰符:

    规则:

    • 修饰的类即为抽象类, 不能被实例化
    • 构造方法和static方法不能被是抽象的
    • 父类的抽象往往在子类中实现,抽象类可以具有指向子类对象的对象引用

    一个类中有抽象方法则这个类也应该是抽象类

    接口:

    接口即规范。

    接口的定义及实现:

    java中interface关键字来定义接口。接口中的方法都只有声明,没有方法主体。

    public interface PCI { // 定义了一个PCI接口
        public void start(); //定义了一个开始的方法
        public void stop(); //定义了一个结束的方法
    } 
    

    接口中只能有抽象方法。接口就是永来被子类实现的,这样可以让不同的子类遵守相同的规范,但却又有自己的实现。

    class SoundCard implements PCI {
        public void start(){
            System.out.println("DUDU");
        }
        public void stop(){
            System.out.println("send...");
        }
    }
    

    当一个类实现一个接口时,必须实现这个接口中定义的所有方法。否则这个类必须定义成抽象的。

    接口中的常量:

    在接口定义的变量默认是public static final修饰的,变量值不能改变,这种变量也可以叫做常量。

    接口中的常量:

    public interface Runner {
        public void run();
    }
    
    public interface Constants {
        public static final int COLOR_RED = 1;
        public static final int COLOR_GREEN = 1;
        public static final int COLOR_BLUE = 1;
    }
    class Car implements Runner, Constants { // 实现两个接口,用","分隔多个接口
        public void run() {
            System.out.println("车颜色是:" + COLOR_GREEN);
            System.out.println("用四个轮子跑")l
        }
    }
    
  • 相关阅读:
    .Net魔法堂:log4net详解
    CentOS6.5菜鸟之旅:安装SUN JDK1.7和Tomcat7
    Java魔法堂:注释和注释模板
    Eclipse魔法堂:任务管理器
    CentOS6.5菜鸟之旅:VirtualBox4.3识别USB设备
    Windows魔法堂:解决“由于启动计算机时出现页面文件配置问题.......”
    JS魔法堂:IE5~9的Drag&Drop API
    CentOS6.5菜鸟之旅:安装VirtualBox4.3
    HTML5魔法堂:全面理解Drag & Drop API
    byzx
  • 原文地址:https://www.cnblogs.com/DengSchoo/p/12727612.html
Copyright © 2011-2022 走看看