类:类声明+类体(变量声明+方法定义(方法头+方法体(局部变量声明+语句)))
类名 驼峰习惯
面向对象编程:继承、多态、封装
继承:子类可以继承父类的属性和行为
多态:
- 重载 :一个类多个方法具有相同的名字,但参数不同。
- 重写: 父类某个方法被子类重写,产生自己的功能行为
封装性:数据和对数据的操作封装在一起
定义:类是抽象的概念,实例是具体的东西
class是抽象出一类事物共有的属性和行为,是一种对象模版,它定义了如何创建实例
class本身就是一种数据类型,而instance是对象实例,instance是根据class创建的实例,可以创建多个instance,每个instance类型相同,但各自属性可能不相同。
字段:一个类可以有多个字段,字段用来描述类的特征
用new操作符可以创建一个实例
成员变量与局部变量区别
成员变量类型:
- 成员变量的基本数据类型+引用数据类型
- 作用范围:成员变量整个类都有效,局部变量只在方法内有效,而且与其声明的位置有关
- 如果局部变量与成员变量名字相同,成员变量被隐藏,如果要是用需要关键字this
- 成员变量有默认值(整形:0,浮点型0.0,boolean型 false,引用类型 null),成员变量没有默认值
构造方法
构造方法名字与类名字相同,没有类型,一个类可以有多个构造方法,但是
参数必须不同
创建对象
1.对象声明
2.使用new运算符为声明的对象分配变量
注意:如果类中没有编写构造方法,系统默认该类只有一个构造方法,如果类中有定义一个或多个构造方法,则java不提供默认的构造方法
3.内存模型
对象的引用存在栈中,实体存在堆中
栈速度快,大小和周期确定,不灵活
堆,可以动态分配内存,生存期可以不告诉编译器,速度慢
参数传值
基本数据类型传值:传值的级别不可以低于该参数的级别,不可以向int传float,但可以向double传float
引用数据类型传值
this
this表示某个对象,可以出现在实例方法和构造方法中,不可以出现在类方法中(类方法可以通过类名直接调用,此时可能没有任何对象产生)
成员变量和局部变量名字相同,成员变量前面的this.就不可以省略
限制修饰符 public、protect、友好的、private(后两个不能修饰类
如果子类和父类在同一个包中,子类会继承除private的其他变量