软件测试工程师 vue组件 电力杆 SCI tkinter junit ansible vue组件注册 jquery遍历对象 jquery删除子元素 华为路由器ipv6配置 idea生成main方法 maven插件 bootstrap单选按钮 bootstrap居中对齐 flutter优缺点 python数据库 python3文件操作 python环境配置 python导入文件 java入门级教程 java教材 java求和 java数组删除 java定义变量 java数组 java接口实例 linux系统简介 球中的小鬼 linux操作系统原理 vnc客户端 dvwa安装教程 ezcad2 地球末日攻略 listpreference 陌陌电脑直播设置教程 办公室复印机使用方法 脚本学习 国都证券官网下载 关闭页面
当前位置: 首页 > 学习教程  > 编程语言

28.我在乐字节学习的十一天(Java)

2020/12/28 19:34:37 文章标签:

今天是我在乐字节学习的第十一天哦,在学习这一门语言新知识点新技术的过程中虽然会有一点枯燥,但是很不容易很有压力,而且老师讲课听起来也很易懂呢,它必须要经历这些过程,它就是要从认识、模仿、练习、总结、理解与掌…

今天是我在乐字节学习的第十一天哦,在学习这一门语言新知识点新技术的过程中虽然会有一点枯燥,但是很不容易很有压力,而且老师讲课听起来也很易懂呢,它必须要经历这些过程,它就是要从认识、模仿、练习、总结、理解与掌握并实际运用的历程,下面就是我今天学习的内容~大家一起学习学习哦

static关键字

  • static方法就是没有this的方法,在static方法内部不能调用非静态方法,反过来是可以的。而且可以可以在没有创建任何对象的前提下,仅仅通过类的本身来调用static方法。这实际上正式static方法的主要用途。
  • 方便在没有对象的情况下来调用方法和变量。
  • static可以用来修饰类的成员方法、类的成员变量,另外可以编写static代码块来优化程序性能。
  • static方法:称为静态方法,由于静态方法不依赖任何对象就可以进行访问,因此对于静态方法来说,是没有this的。在静态方法中不能访问类的非静态成员变量和方法,因此非静态方法和变量都是必须依赖具体的对象才能被调用。。但在非静态的方法中可以访问静态的方法和变量。
  • static变量:称为静态变量,静态变量和非静态变量的区别是:静态变量被所有的对象所共享,在内存中只有一个副本,它当且仅当在类初次加载时会被初始化。而非静态变量是对象所拥有的,在创建对象的时候被初始化,存在多个副本,各个对象拥有的副本互不影响。
public class Zong14 {
    //staic
    private static int age;//静态变量
    private  double score;//非静态变量

    public void run(){
        System.out.println(age);
        go();//静态方法可以在非静态方法里面被调用
    }
    public static void go(){

    }



    public static void main(String[] args) {
        Zong14 student = new Zong14();

        System.out.println(student.age);
        System.out.println(student.score);
        System.out.println(Zong14.age);
        System.out.println(Zong14.score);//出错,不是静态变量不能直接用类名调用

        go();
        run();//出错,非静态方法不能在静态方法里面调用
    }
}
123456789101112131415161718192021222324252627
  • static代码块:static块可以置于类中的任何地方,类中可以有多个static块。在类初次被加载的时候,会按照static块的顺序来执行每个static块,并且只会执行一次。
public class Zong15 {
    {   //赋初值
        System.out.println("匿名代码块");
    }
    static{  //只执行一次
        System.out.println("static代码块");
    }
    public Zong15(){
        System.out.println("构造方法");
    }

    public static void main(String[] args) {
        Zong15 a = new Zong15();
        System.out.println("========================");
        Zong15 b = new Zong15();
    }
}
/*两次输出:
static代码块
匿名代码块
构造方法
========================
匿名代码块
构造方法
 */
12345678910111213141516171819202122232425

抽象类

  • 如果一个方法使用 abstract 来修饰,则说明该方法是抽象方法,抽象方法只有声明没有实现。需要注意的是 abstract 关键字只能用于普通方法,不能用于 static 方法或者构造方法中。
  • 抽象方法的 3 个特征如下:
    • 抽象方法没有方法体
    • 抽象方法必须存在于抽象类中
    • 子类重写父类时,必须重写父类所有的抽象方法
  • 注意:在使用 abstract 关键字修饰抽象方法时不能使用 private 修饰,因为抽象方法必须被子类重写,而如果使用了 private 声明,则子类是无法重写的。
  • 抽象类的定义和使用规则如下:
    • 抽象类和抽象方法都要使用 abstract 关键字声明。
    • 如果一个方法被声明为抽象的,那么这个类也必须声明为抽象的。而一个抽象类中,可以有 0~n 个抽象方法,以及 0~n 个具体方法。
    • 抽象类不能实例化,也就是不能使用 new 关键字创建对象。
public abstract class Zong16 {   //抽象类


    //约束-有人帮我们实现
    //抽象方法,只有方法名,没有方法的实现
    public abstract void go();
}

public class Zong17 extends Zong16 {
    //抽象类的所有方法,它的子类都必须实现所有的抽象方法,除非它的子类也是抽象类。
    @Override
    public void go() {

    }
}
123456789101112131415

接口的定义和实现

  • 接口,在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。
  • 接口并不是类,编写接口的方式和类很相似,但是它们属于不同的概念。类描述对象的属性和方法。接口则包含类要实现的方法。
  • 除非实现接口的类是抽象类,否则该类要定义接口中的所有方法。
  • 接口无法被实例化,但是可以被实现。一个实现接口的类,必须实现接口内所描述的所有方法,否则就必须声明为抽象类。
  • 接口与类的区别:
    • 接口不能用于实例化对象。
    • 接口没有构造方法。
    • 接口中所有的方法必须是抽象方法。
    • 接口不能包含成员变量,除了 static 和 final 变量。
    • 接口不是被类继承了,而是要被类实现。
    • 接口支持多继承。
  • 抽象类和接口的区别
  1. 抽象类中的方法可以有方法体,就是能实现方法的具体功能,但是接口中的方法不行。
  2. 抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是 public static final 类型的。
  3. 接口中不能含有静态代码块以及静态方法(用 static 修饰的方法),而抽象类是可以有静态代码块和静态方法。
  4. 一个类只能继承一个抽象类,而一个类却可以实现多个接口。
  • 接口的实现
    • 当类实现接口的时候,类要实现接口中所有的方法。否则,类必须声明为抽象的类。
    • 类使用implements关键字实现接口。在类声明中,Implements关键字放在class声明后面。
public interface Zong18 {

    //常量-public static final
    public static final int age = 99;

    //接口中的所有定义其实都是抽象的 public abstract

    public abstract void run(String name);
    public abstract void go(int age);
}

public interface Zong19 {
    void time();
}


public class Zong18Impl implements Zong18,Zong19{
    //类可以实现接口 implements 接口
    //实现接口的类,就需要重写接口中的方法

    //利用接口实现了多继承
    @Override
    public void run(String name) {

    }

    @Override
    public void go(int age) {

    }

    @Override
    public void time() {

    }
}
123456789101112131415161718192021222324252627282930313233343536
  • 接口的继承
    一个接口能继承另一个接口,和类之间的继承方式比较相似。接口的继承使用extends关键字,子接口继承父接口的方法。
  • 接口的多继承
    • 在Java中,类的多继承是不合法,但接口允许多继承。
    • 在接口的多继承中extends关键字只需要使用一次,在其后跟着继承接口。
public interface Sports{
      void setTeam();
      void setPeople();
}

public interface Football extends Sports{
      void go();
}

public interface basketball extends Sports,Football{
}

本文链接: http://www.dtmao.cc/news_show_550299.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?