黑马java学习笔记2 强化部分static静态变量与继承extend、super

黑马java学习笔记  

1、项目结构规范

2、static关键字(静态变量 ),修饰成员变量,表示该成员变量只在内存中只存储一份,可以被共享访问,修改

 1)static修饰方法

 实例方法与静态方法的区别

实例方法:无static修饰,属于对象的,通常表示对象自己的行为,可以访问对象的成员变量

静态方法:有static修饰,属于类,可以被类和对象共享访问

注意:同一个类中访问静态成员,可以省略类名不写

Students s = new Student();
s.study//实例方法,需要加对象名
getMax(200,20);//静态方法,不需要加对象名

  

 2)static应用:工具类

对于一些应用程序中多次需要用到的功能,可以将这个功能封装成静态方法,放在一个类中,这个类就是工具类

3)代码块与静态代码块

//斗地主54张牌初始化 静态代码块

 3 设计模式(单例模式:饿汉单例、懒汉单例)

 

package Singlelnstance;

/**
 * 目标:学会使用饿汉单例方式定义单例类
 */
public class Singlelnstance1 {
    /**
     * 定义一个公开的静态的成员变量存储一个类的对象
     * 饿汉:在这里加载静态变量的时候已经创建对象了
     * 对外无论定义多少次对象,实际上都是同一个对象
     * public static int onLineNumber = 161;
     */
    public static  Singlelnstance1 instance = new Singlelnstance1();

    /**
     * 把构造器私有,原来都是公有构造器 、 构造器私有化,不让工具类对外产生对象,减少内存
     */
    private Singlelnstance1(){

    }
}

package Singlelnstance;

public class SingleInstance2 {
        /**
         * 创建一个静态的成员变量储存本类的对象
         * 注意:此时不能初始化对象
         */
        private static SingleInstance2 instance;//null

        /**
         * 把构造器私有,原来都是公有构造器 、 构造器私有化,不让工具类对外产生对象,减少内存
         */
        private SingleInstance2(){

        }

        /**
         * 定义一个方法,让其他地方可以来调用获取一个对象
         */
        public static SingleInstance2 getInstance(){
            if (instance == null){
                //第一次来获取对象
                instance = new SingleInstance2();
            }return instance;

        }
    }

4、继承(父类与子类的继承)

package extend_test;

/**
 * 角色类 做父类
 */
public class Role {
    private String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    private int age;

    /**
     * 共同行为
     */
    public void queryCourse(){
        System.out.println(name + "开始查看课程信息~~~~");
    }
}

================================================================================
package extend_test;

public class Student extends Role{

    //独有属性
    private String className;

    //独有行为
    public void writeInfo(){
        System.out.println(getName() + "今天学习感觉美美的");
    }

    public String getClassName() {
        return className;
    }

    public void setClassName(String className) {
        this.className = className;
    }


}

4.1、继承的规则

在子类方法中访问成员(成员变量、成员方法)满足:就近原则

name(子类) /  super.name(父类)           run()(子类)  /  super.run()(父类)

4.2、方法重写

当子类需要父类的功能、但父类的该功能不完全满足自己的需求时

子类可以重写父类中的方法

添加@Override 判断重写方法是否正确

public calss phone{
    public void call(){
        System.out.println("打电话");
    }
}
=======================================================


public calss NewPhone extends phone{
    //方法重写
    @Override //别人一看就知道这个是重写方法
    public void call(){
        super.call();
        System.out.println("支持视频通话");
    }
}

public Student(String name){

     this(name."新疆大学吴昊臻");

}

this访问本类构造器实现有输入学校名字则替换,无输入学校名字则自动填入:新疆大学吴昊臻 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值