栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Day

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Day

static 关键字
static : adj. 静态的

static 可以修饰成员变量和成员方法;

    static 修饰的成员具备的特点:
        1. 被static修饰的成员被所有对象共享
        2. 被static修饰的成员能被类名直接调用
        3. 被static修饰的成员优先于对象加载的
        4. 被static修饰的成员随着类的加载而加载的
静态成员内存图

静态成员的访问问题
非静态成员变量非静态成员方法静态成员变量静态成员方法
非静态成员方法
静态成员方法XX

静态成员方法只能访问静态成员变量和静态成员方法; 静态虽好但只能访问静态!

为什么静态只能访问静态? 因为静态成员随着类的加载而加载优先于对象,而非静态成员是属于对象的,静态成员加载时,对象还没有产生,所以不能访问

static方法中不可以用this关键字 ? this代表的是对象的引用,而static方法加载时还没有对象,何来引用??

工具类的自定义
工具类 : Arrays,Math,System,Collections....
    
工具类的编写步骤:
	1. 定义一个类,名称 XxxxUtils --> Xxxx操作的事物
	2. 私有无参构造方法,并不提供其他任何构造方法 -> 不允许程序员创建对象
		//dont let anyone instance this class!
	3. 把所有的成员变量和成员方法都static修饰	
继承
继承 : 继承在Java中表示的是 类与类之间的关系 (类和类之间只有继承关系)
    
继承特性中最重要的几个特点:
	1. 子类继承父类可以使用父类所有的非私有的成员 -> 父爱如山
	2. 子类要加载优先加载父类 
	3. 一个子类只可以有一个父类(Java继承的单一继承)
       一个父类可以有多个子类;
       父类还可以有自己的父类(多层继承)
    4. 父类对象不可以使用子类中的成员 -> 父亲是渣男       
继承的格式
继承的格式 是定义在子类的类声明上;

关键字 : extends
    
格式:
	//当一个类没有写任何继承格式,那么这个类就默认继承Object
    public class 父类名 {//Java中所有都类都直接或者间接的继承于Object

    }
    public class 子类名 extends 父类名{//继承关系

    }

Object :  超类,根类,基类
	是所有类直接或者间接的父类; // 炎黄大帝
继承关系下成员访问的特点 成员变量的访问特点
    继承关系下成员变量的访问特点: 就近原则
        1. 在父类中访问 :  只能访问父类中有的成员变量,子类的访问不到
        2. 在子类中访问 : 可以访问子类自己的和父类所有非私有的成员
             特点: 遵循变量访问的就近原则
                局部位置 < 本类成员 < 本类父类成员
             this: 打破局部的约束,强制访问本类成员位置上的变量
             super:打破本类成员的约束,强制访问本类父类成员位置上的变量
        3. 在第三方类中访问 : 子类对象只能访问父类所有非私有的成员和自己本类中的成员
成员方法的访问特点
    继承关系下成员方法的访问特点: 真正对象是哪个,就调用哪个对象的方法
        1. 在父类中访问: 父类不能访问子类成员
        2. 在子类中访问: 子类可以使用父类所有非私有的成员
            若想强制访问本类父类同名方法,需要在方法调用的前面加super : super.方法名();
        3. 在第三方类中访问:
                子类调用和父类同名的方法时,优先调用子类自己的
构造方法的访问特点
子类对象要加载优先加载父类!!!
    
    1. 每一个构造方法的第一句都隐藏着 super();
        super(): 调用父类的无参构造
    2. super()类似语句必须是构造方法的第一句有效代码
    3. 一个构造方法内只可以使用一次super()类似代码
    4. 除了有super()之外还有super(实参),this(),this(实参)
        super():调用本类父类无参构造
        super(实参): 调用本类父类有参构造
        this():调用本类的无参构造
        this(实参):调用本类的有参构造
    5. 如果说你使用了 super(实参) ,this()  ,this(实参)中的任何一个,默认赠送的super()就不送
    6. 在子类的构造方法中调用其他构造方法,必须有一个构造中是去加载父类!!
方法的重写 Override
    为什么有方法的重写:
        当父类行为的方法体不能满足子类的使用,可以在子类中重写父类的方法,覆盖父类方法的方法体;

    方法重写的特点:
        1. 必须有继承/实现关系
        2. 子类方法和父类方法的声明完全一致(99.99%)
            方法名必须一致
            形参列表必须一致
        3. 方法体可以不一样
        ------------
        重写中子类方法可以不一样的东西:
        1. 权限修饰符 :  子类的重写方法权限修饰符必须大于等于父类的方法
                public > protected > 不写 > private
        2. 返回值类型
            void : 必须一样
            基本数据类型 : 必须一样
            引用数据类型 : 子类重写方法的返回值类型必须是父类方法的子类或者同类
                Integer < Number < Object

       注解: @Override 可以用来约束重写方法的格式
            加在子类重写方法声明上

       static 修饰的方法没有重写的概念!
this 和 super
this : 本类对象的引用
	哪个对象调用含有this的方法,this就代表那个对象 --> 对象调方法: 对象照镜子,镜子里是谁this就是谁
	
super : 本类父类对象的引用	
	哪个对象调用含有super的方法,super就代表那个对象的某个父类对象 -> 对象调方法 : 对象照镜子,镜子里出现的是此对象的某个父类对象,而这个父类对象就是super
	
-------------------------以上是关于super和this关键字的理解---------------------------
        
 this.变量 : 打破局部约束,强制访问本类成员位置的变量
 this.方法(实际参数) : 调用本类成员位置的方法 -> 不会写!!所有的方法都是成员方法
 this() : 调用本类的无参构造方法
 this(实际参数) : 调用本类的有参构造方法
 
 super.变量 : 打破本类成员的约束,强制访问本类父类成员位置上的变量
 super.方法名(实际参数) : 调用本类父类的成员方法 -> 会用!!
 super() : 调用本类父类的无参构造方法 -> 构造方法的默认第一句代码
 super(实际参数) :  调用本类父类的有参构造方法
九阳神功
你只要看到了有对象调,就可以使用公式;

第一式 : 只要看到了对象调,找到对象创建的位置(观察对象创建的语句)
    
第二式 : 看对象在调什么:
	对象调属性(成员变量):
	对象调方法(成员方法):
	对象调静态成员(静态成员变量和静态成员方法):

// 类名 对象名 = new 类名(实参);
// 左边 : 左边的类名  -> 看左边: 左边的类中有没有这个东西 -> 有就不报错 没有就代码报错
// 右边 : 右边的类名  -> 看右边: 右边的类中有没有这个东西 -> 有的话结果就是这个,没有就去父类找

第三式 : 
	对象调属性(成员变量): 编译看左边,运行看左边;
	对象调方法(成员方法): 编译看左边,运行看右边;
	对象调静态成员(静态成员变量和静态成员方法): 编译看左边,运行看左边;
继承思想的好处和弊端
继承的好处:
	子类往父类看 : 抽取共性到父类中,提高代码的复用性
	父类往子类看 : 子类父类后,可能功能得到拓展
	
继承的弊端:	//写代码的六字箴言: 高内聚,低耦合
	内聚 : 独立完成功能的能力
	耦合 : 和别人的联系和关系 -> 依赖关系
	
	继承缺提高了代码的耦合性!
        
        继承的利大于弊!!有继承果断用!!
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/709691.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号