类和对象
类:模型,确定对象将会拥有的特征(属性)和行为(方法)
对象:类的实例化体现
属性:对象具有的各种静态特征(对象有什么?)
方法:对象具有的各种静态行为(对象能做什么?)
创建类
包名的命名规则:1.全小写 2.域名的倒叙(e.g:com.imooc.cat)
成员属性:类的参数
方法:类的功能
实例化对象
//对象实例化
Cat one = new Cat();
//调用对象的方法
one.eat();
one.run();
注:在方法中未初始化的变量无默认值; 而类的成员属性具有默认值
int--0; double--0.0; String--null;
单一职责(功能)原则
有且只能有一个引起功能变化的愿意
功能单一——复用性高,耦合性低
将不同的功能封装入不同的类中
new关键字
1.-声明对象Cat one;
在内存的栈空间里开辟了一个空的“盒子”
2.-实例化对象new Cat();
在内存的堆空间中开辟空间
Cat one =
new Cat();
把堆的内存地址存放到了栈当中
如果Cat two=one;
对两个对象进行任意操作都会影响另一个,两个对象指向同一个空间,都可以操作
构造方法
不能被对象单独调用,必须与new
关键字组合
1.构造方法与类同名且没有返回值
2.构造方法的语句格式
3.只能在对象实例化(与new
搭配)时进行调用
4.当没有指定构造方法时,系统会自动添加无参的构造方法
5.当有指定的构造方法,无论是有参还是无参,都不会自动添加无参的构造方法
6.一个类中可以有多个构造方法
就近原则:出现重名变量时优先近处的变量操作
this关键字
指代当前对象,也可以指代当前方法
降低变量命名的复杂度
构造方法的调用
同一个类的构造方法之间可以互相调用this(参数/无参);
this();
必须放在构造方法的第一条!!!
总结
引用对象类型的默认值是:null
栈中的地址指向堆空间