一.面向对象和面向过程
1.概述
面向过程:我自己如何做,每一步的步骤是什么,最后完成目标
面向对象:我应该交给谁来做,他要怎么做依靠他自己内部方法
对象:用来描述客观事物的一个实体
类:具有相同属性方法的一组对象的集合
属性:对象具有的静态特征
方法:对象具有的动态方法
类是对象的类型,对象是类的实例化表现
2.步骤
按照问题创建对象,属性方法都加上,通过new对象实例化实例,调用方法实现功能
类的方法存在方法区中,声明对象时进入栈内存,使用new创建对象,属性赋值后进入堆内存分配空间,调用方法时指针指向方法区地址。
三.成员变量和局部变量
区别在于是定义在类里,还是方法里
成员变量存在堆内存,随着对象的出现消失而变化,有默认的初始值或构造方法
局部变量存在栈内存,随着方法的弹栈而变化,需要手动赋值才能使用
默认初始值char='/u0000',boolean=false
2.数组除可存储基本类型外,还可以存储对象,即对象数组
obj[]b=new obj[2];
b[0]=new obj();
b[1]=new obj();
b[0].show();
class obj{
public void show(){
System.out.println();
}
}
3.方法参数
基本类型的形式参数改变不会影响实际参数,引用类型的形式参数的改变影响实际参数
四.引用类型的兼容性
对引用型变量进行赋值时,赋值号左右两边的类型要相同,或赋值类型是引用类型的子类
方法的return类型返回的必须与方法声明时的返回值类型相同,或是其子类
null,所有引用类型变量初始值均可赋值为null
五.单一功能原则
一个类有且只有一个功能,如果一个类执行多个功能,耦合就会大大增加不利于后期修改
六.代码块
局部代码块:定义在方法和语句中,方法和类都是以代码块的方式划定边界的
构造代码块:定义在类中成员位置,方法之外的代码块,在每次创建对象时执行
静态代码块:定义在成员位置,方法之外,使用static修饰的代码块
优先于主方法和构造代码块,在类加载时执行,用于初始化
七.类的访问控制权限
对于类只有两种public和默认
public:任何位置 private:当前类可以访问 protected:当前类,同包其他类,跨包子类
默认:当前类,同包其他类
若类用public修饰,那么必须与文件名相同,一个文件只能有一个public修饰的类
八.类和包的存储
1.全类名:包名加点类名
2.通过绝对路径来确定文件位置
3.import关键字,导入本包中没有的类