zoukankan      html  css  js  c++  java
  • java面向对象

    静态(可继承)  和类一起存储在方法区

    静态常量 public static final int ANIMAL_LEG=4;

    静态变量 static String school;

    静态代码块 static{...}

    静态方法 public static void study(){...}  只能调用静态变量/方法

    this(对象)不能调用静态

    调用  类名.静态变量/方法  对象.静态变量/方法

    构造方法 创建对象时调用 构造方法不能调用成员方法   

    构造代码块 {...} 成员方法不能调用构造方法

    无参构造 public 类名(){}        调用:new 类名();

    有参构造 public 类名(String name, int age){

    this.name=name;   // super(name); 调用父类有参构造

    this.age=age;

    }

    私有构造 private public 类名(){}  不能创建对象(只能类调用静态方法)

    运行时 (第一行)调用父类的无参/有参构造(不写 默认调用父类无参)

    构造方法中如果先调用其他构造方法 间接先调用 父类的无参构造

    this("张三",18):调用本类构造方法  super("张三"):调用父类构造方法

    成员常量 final int num=10;

    成员变量 String name;

    private int age; 私有变量

    成员方法 public void show(){...}

    public void setAge(int age){this.age=age;}  私有变量 set方法

    public int getAge(){return age;} 私有变量 get方法

    []继承 子类可以继承父类非私有的成员变量、成员方法

    重写继承的成员变量、成员方法  权限>=父类权限

       public>不写(默认修饰符)>private

    调用父类的 super.成员变量/方法

    调用子类的this.成员变量/方法

    抽象类 abstract class Animal{

    成员变量、成员方法

    抽象方法 [public abstract void eat();]  有抽象方法的一定是抽象类

    }

    private私有 ×无法继承

    final ×无法重写

    static静态 ×类.抽象方法(无方法体)

    接口

    public interface 接口{ 没有构造方法

    public static final int num=10;  静态常量

    public abstract void show();  抽象方法 无方法体

    }

    接口[]实现

    class implements 接口1[,接口2]{

    public void show(){...};     重写抽象方法

    }

    接口[]继承

    interface 接口3 extends 接口1,接口2{...}

    继承+实现

    class 1 extends 2 implements 接口A, 接口B{...}

    多态

    父类型 对象名=new 子类型(); 方法参数为父类型 传入子类型

    父类可以是:抽象类、接口 方法返回父类型  return子类型

    对象.成员变量   调用父类成员变量  

    对象.成员方法   调用子类重写的成员方法

    对象.静态变量/方法 调用父类静态变量/方法(父类型.静态)

    不能调用子类特有的变量/方法

    向上转型:父类型  对象名 = new 子类型();

    an instanceof Dog 对象an Dog类 的 实例(后代元素)true

    向下转型:子类型 对象名 = (子类型) 父类型的子对象;

    向下转型后 可调用子类特有的变量/方法

    修饰符 访问权限:

    public 本类中

    不写: 同包下

    protected 同包下/子类中

    public 都能访问

    注意:如果类用public修饰,则类名必须与文件名相同。

    一个java文件中只能有一个public修饰的类。

    this.xxx  调用子类的成员变量/方法

    this(1)   调用子类其他构造方法   在子类的构造方法第一行

    super.xxx 调用父类的成员变量/方法

    super(1)  调用父类的构造方法   在子类的构造方法第一行

    Student s = new Student();

    new Student();          //匿名对象,没有名字的对象

    new Student().study();  //匿名对象 调用方法/属性

    method(new Student());  //匿名对象 作为参数

    public static Student getStudent(){

    return new Student(); //匿名对象 作为返回值

    }

    final修饰符,可以用于修饰类、成员变量/方法  不能修饰构造方法

    final修饰类:不能被继承,不能有子类

    final修饰方法:不能被重写

    final修饰变量:是不可以修改的,是常量 要在创建对象(赋默认值)前赋值

    final String name;

    public Person(String name){

    this.name=name; // 构造方法 赋值   创建对象前赋值  都不会报错

    }

  • 相关阅读:
    hadoop hdfs总结 NameNode部分 概述
    最近近况
    hadoop hdfs总结 NameNode部分 1
    rsync 使用
    SmartHost
    hadoop unit test 问题
    git 使用记录
    java 类内存分配计算
    hadoop hdfs总结 NameNode部分 2
    0417 430调试技巧
  • 原文地址:https://www.cnblogs.com/javscr/p/10167813.html
Copyright © 2011-2022 走看看