JAVA总结

一、面向对象

1. 类、对象、变量

(1)所有的Java程序都已类class为组织单元;类由属性和方法两部分组成
(2)先创建对象,再使用对象
(3)成员变量:类中定义,自动定义初始值
局部变量:类方法中定义(两变量同名,局部变量有更高的优先级)

2. 构造方法

构造方法是定义在java类中的一个用来初始化对象的方法,与类同名且没有返回值。

public 构造方法名(){

}

其中构造方法名与类同名;当没有指定的构造方法时,系统会自动添加无参构造方法

3. Static使用

Static修饰的成员属于整个类,被类的所有对象共享。可通过使用类名直接访问静态成员,也可通过对象名
Static可以修饰变量、方法和代码块

(1)Static使用之静态方法

public class Helloworld {
    public static void print() {
        System.out.println("***");
    }

    public static void main(String[] args) {
        Helloworld.print();
        Helloworld demo = new Helloworld;
        demo.print();
    }
}

注意:静态方法中可以直接调用同类的静态成员,但不可以直接调用非静态成员;普通成员方法中可以直接访问同类的非静态变量和静态变量;静态方法中不能直接调用非静态成员方法

(2)Static使用之静态初始化块

静态初始化块在类加载时执行,且只会执行一次,同时静态初始化块只能给静态变量赋值,不能初始化普通成员

public class Helloworld {
    int num1;
    int num2;
    static int num3;

    public Helloworld() {
        num1 = 91;
        System.out.println("构造方法为num1赋值");
        num2 = 74;
        System.out.println("初始化块为num2赋值");
        num3 = 83;
        System.out.println("静态初始化块为num3赋值");
    }

    public static void main(String[] args) {
        Helloworld hello = new Helloworld();
        System.out.println(hello.num1);
        System.out.println(hello.num2);
        System.out.println(num3);
        Helloworld hello2 = new Helloworld();
    }
}

运行结果:静态初始化块为num3赋值
初始化块为num2赋值
构造方法为num1赋值
91
74
83
初始化块为num2赋值
构造方法为num1赋值

二、java面向对象的特性

1. 封装性:将类的某些信息隐藏在内部,通过类的方法来实现操作访问

步骤:
1.1 修改属性可见性;
1.2 创建getter\setter方法;
1.3在方法中加入属性控制语句

(1)静态内部类:

public class SOuter {
    private int a = 99;
    static int b = 1;

    public static class SInner {
        int b = 2;

        public void test() {
            System.out.println("访问外部类b" + SOuter.b);
            System.out.println("访问内部类b" + b);
        }
    }

    public static void main(String[] args) {

        //三行表示
        SInner sInner;
        sInner = new SInner();
        sInner.test();

        //两行表示
        SInner si = new SInner();
        si.test();

        //一行表示
        new SInner().test();

    }
}

(2)成员内部类:访问外部类时使用this指针

(3)方法内部类:只能在该方法中使用,且不能使用访问控制符和Static修饰符

2. 继承性

(1)一般形式:class 子类 extends 父类
(2)方法重写:子类对继承的父类方法不满意可以重写,调用时优先调用子类方法
(3)继承的初始化顺序:先初始化父类,再到子类;先执行初始化对象中属性,再执行狗在方法中的初始化
(4)父类对象--属性初始化--构造方法--子类对象--属性初始化--构造方法
(5)注意:如果子类构造方法中没有显示调用父类的构造方法,默认调用父类无参构造方法,若此父类没用无参的构造方法,则编译出错

3. 多态性

引用多态:父类的引用可以指向本类的对象,也可指向子类的对象
方法多态:创建本类对象时,调用的方法为本类方法;创建子类对象时,调用的方法为子类的重写的方法或者继承的方法

(1)抽象类

用关键字abstract修饰:抽象类只用声明不需要实现;包含抽象方法的类为抽象类;抽象类不能直接创建,可以定义引用变量。

public abstract class Telphone{
public abstract void call();            //抽象方法没有方法体,以分号结束
}

(2)接口(一种特殊的类,有全局变量和公共抽象方法组成)

[修饰符] class 类名 extends 父类implemrnts 接口1,2……
{类体部分
}
注:接口经常与匿名内部类配合使用

public interface Iplay{
     public void phone();
}
public class People implements Iplay{
     public static void main(String[] args){
         People test=new People();
         test.phone();
      }
     public void phone(){
           System.out.println("手机可以玩游戏");
     }
}

你可能感兴趣的:(JAVA总结)