Java类的应用总结

java后续的所有概念,几乎都是围绕类进行操作和描述

最开始我们学到,Java的源文件后缀为.java,编译后生成.class文件,之后交由虚拟机运行。而生成.class文件的数量则取决于源文件.java中的文件,如以下程序:


class classYest{
    static void test(){
        System.out.println("Test Class");
    }
}

public class Main {

    public static void main(String[] args) {
        System.out.println("Hello World");
        classYest.test();
    }

}

最后会生成下面两个可被虚拟机执行的.class文件

(基础)类的调用

类在程序中是可以随意调用的,如System.out.println()就是对System类的调用

而之前学到的控制台输入操作,则是类的另一种调用

        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();
        System.out.println(a);

即用类创建一个对象,对对象进行独立的类的操作调用

如" System ios = new System(); "语句会报如下错误

类的基本构建格式

public class Beginning {
    //属性
    int Integer;
    Character Character;

    //静态代码块
    static {
        //System.out.println("static block");
    }

    //构造
    public Beginning() {

    }

    //方法
    public void begin(){
        System.out.println("Beginning");
    }
}

属性是属于类的变量,通过 类名(或生成的对象名).属性变量名 使用

静态代码块处于最高优先级,其中的代码只在程序第一次调用类执行一次

构造是类唯一不可缺少的部分,每次调用类声明对象都会执行其中代码

类中允许存在相同命名的构造或方法,但是其参数不能相同,程序根据不同的参数区分执行的构造或方法,这就是重载,如方法的重载,但是没有看到构造重载这一说。

类的继承

public class 子类类名 extends 父类类名 {

}

只有单继承的逐级关系,子类继承父类的所有属性和方法,存储的逻辑关系为子类包含父类,子类和父类相同的属性和方法不会冲突,而是默认执行子类的属性和方法,即方法的重写

多态

继承关系确立后,可将子类new给父类,此时只能使用父类的属性和方法。通过强转仍可以赋给子类的变量,继续使用子类的属性和方法。

抽象类和抽象方法

即无实例的类和方法,因此在继承等操作时方法都要重写,让Java能够保证找到实例。

接口

public interface Interface {
    public static final String FIELD = "value";
    public abstract void method();
}

其中 "public static"  "public abstract" 可以省略

public class 类名 implements 接口1, 接口2, .... {

}

注:继承和接口可以写在一起

内部类

(实例化案例)

Outer out = new Outer();
In in = out.new In();//这个是内部类实例化的语法
in.inMethod();

In in = new Outer().new In();//这个是内部类实例化的语法
in.inMethod();

 成员内部类

public class Outer {
    int num = 1;
    public class In{
        int num = 2;
        public void Method() {
            int num = 3;
            System.out.println(num);
            System.out.println(this.num);
            System.out.println(Outer.this.num);
        }
    }
}

静态内部类

public class Outer {

    public static class In{

        public void Method() {
            System.out.println("静态内部类方法");
        }

    }

}

//静态成员要通过类名访问

public class Test {
    public class In{
        Outer.In in = new Outer.In();
        in.Method();
    }
}

导包后可写为:

In in = new In();

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值