java基础07

成员变量与静态变量的区别:1.两个变量的生命周期不同。成员变量随着对象的创建而存在,随着对象的收回而被释放。静态变量随着类的加载而存在,随着类的消失而消失。2.调用方式不同。成员变量只能被对象调用。静态变量可以被对象调用,还可以被类名调用。3.别名不同。成员变量也称为实例变量。静态变量称为类变量。4.数据存储位置不同。成员变量数据存储在堆内存的对象中,所以也叫对象的特有数据。静态变量数据存储在方法区(的静态区),所以也叫对象的共享数据区。

主函数特殊之处:1.格式是固定的。2.被jvm所识别和调用。   public static void main(String[] args); public:因为权限必须是最大的。 static:不需要对象的,直接用主函数所属类名调用即可。   void:主函数没有具体的返回值。 main:函数名,不是关键字,只是一个jvm是别的固定的名字。 String[] args:这是主函数的参数列表,是一个数组类型的参数,而且元素都是字符串类型的参数。

静态什么时候用?1.静态变量,当分析对象中所具备的成员变量的值都是相同的,这时这个成员就可以被静态修饰。只要数据在对象中都是不同的,就是对象的特有数据,必须存储在对象中是非静态的。如果相同的数据,对象不需要做修改,只需要使用即可,不需要存储在对象中定义成静态的。2.静态函数,该功能是否访问到对象中的特有数据。如果该功能需要访问非静态的成员变量,该对象就是非静态的。如果不需要,就可以将函数定义成静态的成员。

静态代码块:满足一切的静态特征,除此之外,随着类的加载而执行,而且只执行一次。作用:用于给类进行初始化。

构造代码块:可以给所有对象进行初始化的。

javadoc命令:用于将.java代码中的文档注释(/**   */)提取成文件。做为代码的功能说明书。类如果想生成文档必须要将权限修改成public,且类名与文件名要相同。

设计模式:对问题行之有效的解决方式。其实他是一种思想。

单例设计模式:必须对于多个程序使用同一个配置信息对象时,就需要保证该对象的唯一性。 解决的问题是:可以保证一个类在内存对象中的对象的唯一性。

如何保证对象唯一性?1.不允许其他程序用new创建该类对象。2.在该类创建一个本类实例。3.对外提供一个方法让其他程序可以获取该类的实例。

步骤:1.私有化该类构造函数。2.通过new在本类中创建本类的实例。3.在本类中创建一个静态方法用于获取本类的实例。

//饿汉式
class Single
{
    static Single s = new Single();
    private Single(){}
    public static Single getInstance()
    {
        return s;
    }
}
//懒汉式
class Single2
{
    static Single2 s = null;
    private Single2(){}
    public static Single2 getInstance()
    {
        if(s==null){
            s = new Single2();
        }
        return s;
    }
}
class SingleDemo 
{
    public static void main(String[] args) 
    {
        Single ss = Single.getInstance();
    }
}

继承

关键字:extends

继承的好处:1.提高了代码的复用性。2.让类与类之间产生了关系,给第三个特征多态提供了前提。

java中支持单继承,不直接支持多继承,但对c++中多继承机制进行了改良。

单继承:一个子类只能有一个直接父类。多继承:一个子类可以有多个直接父类。java不直接支持多继承,因为调用方法时容易产生调用的不确定性。

java支持多重继承,就会出现继承体系。

当要使用一个继承体系时:1.查看该体系中的顶层类,了解该体系的基本功能。2.创建体系中的最子类对象,完成功能的使用。

应用场景:当类与类之间存在所属关系的时候,就定义继承。xxx是yyy的一种。

注意:当本类的成员变量与局部变量同名时,用this区分。当子类与父类中的成员变量同名时,使用super来区分。this代表本类对象的引用,super代表一个父类空间。

当子父类中出现成员函数一模一样的情况,会运行子类的函数。这种现象,称为覆盖操作。这是函数在子父类中的特征。

函数两个特征:1.重载。同一个类中,overload。2.覆盖。子类中,覆盖也称为重写,覆写,override。

覆盖注意事项:1.子类方法覆盖父类方法时,子类权限必须要大于等于父类权限。2.静态只能覆盖静态,或被静态覆盖。

什么时候使用覆盖操作?

当对一个类进行子类的扩展时,子类需要保留父类的功能声明,但是要定义子类中该功能的特有内容时,就使用覆盖操作来完成。

猜你喜欢

转载自blog.csdn.net/weixin_42581821/article/details/86588887
今日推荐