1、面向对象设计和开发的好处:
交流更加流畅、提高设计和开发效率
2、用面向对象的思想描述世界
1、发现类
2、发现类的属性
3、发现类的方法
3、构造方法
初始化对象 1、属性2、方法
构造方法无返回值类型
无参的构造方法:
访问修饰符 方法名(与类名一致)(){ }---可以在创建对象的同时初始化
有参数的构造方法:
访问修饰符 方法名(指定参数){ }
系统提供默认无参构造方法。自定义了有参构造方法后,系统默认的无参构造方法自动消失
快捷键---Alt+shift+s (eclipse)Alt + insert(IDEA)(笔者的笔记本是Alt+0(数字键盘))
作用:构造函数的最大作用就是创建对象时完成初始化,当我们在new一个对象并传入参数的时候,会自动调用构造函数并完成参数的初始化。
4、this 关键字
指当前的类 本类
调用属性 this.health=100; this.name="二哈";
调用方法 this.print();
调用构造方法 this(); this("二哈",100,100);
如果构造方法调用this,必须在第一条语句
5、方法的重载
方法名相同、参数项不相同、与返回值和访问修饰符无关
6、static—类属性、类变量
修饰属性---可以通过类名直接访问,而不需要new一个对象 类名.属性名
修饰方法---可以直接访问 类名.方法名();
静态的初始化块---static{ 逻辑语句 }---初始化对象之前优于构造方法优先执行的代码块
执行顺序:静态代码块-->构造代码块-->构造方法
静态代码块只执行一次,构造代码块和构造方法每次new都执行
static---类属性、类变量;类方法;调用方式 类名.属性 类名.方法();归属于类
非static---实例属性、实例变量;实例方法;调用方式 对象.属性 对象.方法();归属于单个对象
方法里不能定义static变量
7、封装
概念:将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法
来实现对隐藏信息的操作和访问
封装的步骤:
1、修改封装的可见性 设为private
2、创建公有的getter/setter方法 用于属性的读写
3、在getter/setter方法中加入属性控制语句 对属性值得合法性进行判断
为什么封装?
属性可以随意访问,不合理的赋值,数据不安全
8、static变量在内存中的位置
static变量存放在方法区中(方法区又叫静态区,跟堆一样,被所有线程共享,方法区中包含所有
的class变量和static变量),不管创建多少个实例,静态成员变量都会共享同一内存空间。
静态成员变量在类被加载时会执行一次初始化,只要类加载就会初始化。