封装:主要解决安全问题,还要提供对外的输入输出接口(setter和getter,构造方法只是入口,不是出口,但构造方法也要调用setter来实现封装)
包组织:
访问修饰符:
public: 全工程/项目都可见,范围最大
protected:包级私有+子类可见
默认: 即访问修饰符为空,亦能简称为包级私有,即在同一个包的所有类可见
private: 只有本类可见,范围最小
package: 指的是声明当前类所在的包,比如package cn.kgc.kb88,类名是Test,则全类型名为cn.kgc.kb88.Test,必须写在代码的第一行,前方有空行/注释均可
包命名规范: 全小写,包名前加上唯一前缀,通常使用组织倒置的网络域名,包名后续部分依不同机构的内部规范不同而不同
import: 用于导入当前类所应用的类,正常在package语句下一行
JDK提供基本包
java.lang:虚拟机自动引入
java.util:提供一些实用类,工具包
java.io:输入、输出
Static关键字:没有static关键字的,可以视作是对象的
有static关键字,可以视作是类的
加static的属性叫做类属性: 全局变量,无论哪个对象/整个类型来改变属性的值,都会对其他对象/整个类造成影响
加static的方法叫做类方法: 全局方法,一般用于定义工具方法
普通方法(对象方法)和静态方法(类方法)的区别:
对象方法可以直接调用对象属性,对象方法以及静态属性和静态方法
静态方法可以调用静态属性和静态方法,不能直接调用对象属性和对象方法
通常用类名.静态变量名来调用静态变量
特性: 同一个类共享静态变量的地址
静态代码块格式: static{静态代码块 只会在第一次访问该类时,执行1次,用于初始化环境}
继承
作用:代码重用,只支持单根继承,即一个类只有一个直接父类
关键字为extends,子类对象继承父类对象的所有内容,但不都可见,除了static(因为static属于类,不属于被继承的范畴)
继承中的构造方法:
子类构造方法默认来自于父类的无参构造方法
如父类有参但没有无参,则子类无法直接写出无参构造方法,需要用super()指定父类的构造方法
super关键字的作用:
子类可以通过super关键字,指定父类对象的内容
super不能在静态方法中使用,只能出现在子类的方法和构造方法中
super.属性 一般用于区分子类,父类都有的属性
super.方法() 一般用于区分子类,父类有相同方法(重写的同时调用父类方法)
super(..参数..)指定父类的构造方法
父类的名称又称超类,super class
子类又称subclass
super()
单例模式:(一个类在一个系统中,从头至尾只有一个对象)
范例:懒汉式
饿汉式
//快速排序 方法的递归 public class QuickSort { int i=0; public void a(){ i++; if(i>10){ return; } System.out.println("第"+i+"次递归"); a();//自己调用自己的方法 } public static void main(String[] args) { QuickSort qc=new QuickSort(); qc.a(); } }