JAVA面向对象基础

运行

javac [main文件] -d [bin文件目录]
java -cp [bin文件目录] [main文件类名]

对象

把业务概括为一个由字段方法描述的代码实体。

类与实例

类是对象实例的模板,实例时对象类运行时实际产生的具体实体。

字段

可以由java基础数据类型或者对象作为字段。

方法

可能是构造方法,也可能是与业务相关的方法。

  • 构造方法:在构造实例时使用,可以通过输入参数构造具体实例
  • 方法重载:可以通过不同的输入参数,对于同功能的方法使用同名进行重载

继承

子类可以继承父类的方法和字段,可以使用super访问父类

  • ps. 在Java中,任何class的构造方法,第一行语句必须是调用父类的构造方法。
  • 向上转型和向下转型

多态

子类可以通过@Overrrider覆写父类方法

抽象类

可以通过@Abstract把类的方法定义成抽象类,以便子类进行继承并且覆写

  • 抽象方法只能在抽象类中定义,抽象类可以有非抽象成员

接口

可以通过interface定义一个接口

  • 内部只能存在抽象方法

静态字段和静态方法(static)

  • 静态字段属于类,被所有实例共享该空间(推荐用类名来访问静态字段)
  • 静态方法属于类,可通过类名就可以调用,只能访问静态字段,与静态字段搭配使用。
  • 接口的字段只能是public static final(故可以不描述),用处存储必须被公共访问,属于类,且不能被修改的默认值。

包(package)

  • 使用 **.**.**路径格式唯一确定包的位置
  • 包查找顺序:当前包-import-java.lang
  • 为了避免名字冲突,我们需要确定唯一的包名。推荐的做法是使用倒置的域名来确保唯一性。

作用域

  • public 所有包公开
  • private 本包私有
  • protected 本包继承类中公开
  • package 未标识的成员默认包作用,用于在同一个包中写其他类使用
  • finnal与上述不冲突,修饰class、field和method,可以防止字段被继承覆写,方法被覆写
  • 一个.java文件只能包含一个public类,但可以包含多个非public类。如果有public类,文件名必须和public类的名字相同。

内部类

  • Inner Class 内部类的创建依赖于已经存在的外部类
  • Anonymous Class 匿名类,只用一次的内部类
点击查看代码
class MyClass {

    public static void main(String[] args) {
        // 创建一个不继承的匿名类
        Object obj = new Object() {
            public void print() {
                System.out.println("This is an anonymous class");
            }
        };

        // 调用 print() 方法
        obj.print();
    }
}

  • Static Nested Class 静态内部类,,它不再依附于Outer的实例,而是一个完全独立的类,因此无法引用Outer.this,但它可以访问Outer的private静态字段和静态方法。

classpath和jar

  • class
    classpath用于指定该项目的class文件位置,不推荐系统变量,推荐在jvm手动传入
    java -cp [bin文件目录] [main文件类名]

  • jar
    jar用来打包不同层级的class
    zip压缩,后缀未jar就行,第一层不能是bin,根目录要和外界对应
    jar cvf my_jar.jar -C bin .

posted @ 2024-01-23 12:47  badpear  阅读(10)  评论(0)    收藏  举报