1:Java命名规则
变量使用前要进行初始化(initialized)
运算符
流程控制:顺序,分支,循环
内存结构:1:堆栈方法区
2:注意对应用类型的赋值问题
引用类型的赋值页脚引用传递,指一块内存空间被对多个栈内存空间所指向
3:每一块堆内存空间彼此独立,但是会同时使用同一块方法内存区
4:垃圾空间,没有任何栈内存指向的堆内存空间,会被GC进行回收
5:属性 成员变量 随对象存放在堆里面
6:在实际开发过程中,满足代码的语法正确只是最低的要求,除此之外还要满足业务要求。
setter和getter方法延伸
业务延伸 setprice 处理负数价格
特殊业务 定制机 属性在定义时都进行了赋值
注意:1属性可以在定义时就设置默认初始值。
2:不一定所有的属性都有setter和getter方法。如果不涉及则不需要。
7:新建一个对象放置在堆中,会对属性进行初始化,给定属性默认初始值:
引用类型 null
整数 0
浮点型 0.0
布尔 false
字符型 空格
8:构造方法
9.1没有构造方法,默认提供一个无参的构造
9.2构造方法的方法名与类名相同,且无返回值类型,
9.3又是我们创建对象是,会一并堆属性进行初始化操作,所以往往定义带参的构造
注意参数的个数和顺序。
9.4构造方法的目的对属性进行初始化
Pojo有呢些要求?
1类名必须有意义。明确可以描述某一类事物
2封装后的属性必须private修饰,封装后的属性使用setter和getter方法
3类中可以定义多个构造方法,但是必须保留一个无参的构造方法(反射使用)
4类中不允许出现任何的输出语句。所有的输出都通过调用来完成。
5类中可以提供一个获取对象完整信息的方法
6类中没有复杂的逻辑结构(判断循环几乎没有),只是一个单纯显示类
继承inherit
类的三大特性之一
Extends
子类继承父类
父类:超类(superclass) 基类
子类:派生类
继承的优点:减少代码量,为了增加代码的复用性
1:java是单继承。不能进行多继承,但是可以进行多层继承
2:子类继承父类,但是对于父类的成员变量无法直接操作,只能通过从父类继承过来的setter和getter方法。
3:构造方法
Super()指的是调用了父类的构造方法。
结论:执行构造方法创建对象完成对象的初始化时,先执行父类的构造,完成父类的初始化,在执行本类的初始化工作。
第一次创建Phone类,是直接继承object,而object是jdk提供的工具类,自然不会有属性,所以object类只提供一个无参的构造 在执行构造方法时,无论是有参还是无参都会先执行父类object的无参构造。
但是对于Phone的子类Mobile,必须也要有自己的构造方法,由于构造执行的特性,对于有参的构造,则先执行父类Phone的有参,然后才执行自己的构造。
构造方法construct中,无论是否显式还是隐式调用super(),子类在创建对象时都会执行super();
显式调用构造是在需要通过父类的带参构造来完成子类的带参构造。例如Mobile类带参构造中显式跳跃的super(brand,price,service)