面向对象和类的概念:
-
对象用计算机语言对问题域中事物的描述,对象通过“属性(attribute)”和“方法(method)”。
-
类是用于描述同一类型的对象的一个抽象的概念,类中定义了这一类对象所具有的静态属性和动态属性。
-
类可以看成一类对象的模板,对象可以看成该类的一个具体实例。
!
面向对象和面向过程的区别:
使用面向对象的优点:
自定义类
class 类名{
//成员属性|变量
权限修饰符 数据类型 变量名;
//构造器
修饰类 类名(变量){
变量声明
}
无参构造(){
}
有参构造(属性1,属性2){
this.属性1=属性1;
this.属性2=属性2;
}
重载有参构造(属性1,属性2,属性3){
this.属性1=属性1;
this.属性2=属性2;
this.属性3=属性3;
}
//功能|方法 成员方法
修饰符 返回值类型|void 方法名(){
方法体;
}
}
如何在程序中使用面向对象:
New创建对象发生的3个事情
构造器|构造方法|构造函数
特殊的方法
构造器的特点
-
名称必须和类名一致,与类名相同
-
没有返回类型|void
-
构造器可以存在 return,return 有选择的跳出构造器
-
不能随便调用,和 new 在一起使用,其他时候不能调用
-
修饰符不能为 final abstract static
作用:初始化对象信息,不是用于创建对象的空构造:没有参数的构造器、无参构造 -
一个类中,如果没有显示|手动 加入 任意构造器javac 编译后
自动加入空构造 -
一旦加入构造器, javac 不会加入空构造器
作用:
为对象初始化信息,不是创建对象
定义:
修饰符 类名(){
代码;
}
使用:
new对象的时候回调用构造器
注意:
构造器没有方法的返回值|void,不需要return,可以添加return *
构造器不能和static,abstract,final一起使用如果没有自定义构造器,编译器自动为你条件一个空构造(没有参数的构造器就是空构造)
如果一旦自定义了构造器,编译器都不会在为你提供任何构造器包括空构造
修饰符可以为private,作用是只能在当前这个类中使用
构造器是特殊的方法,可以构成方法的重载的特性
Jvm内存划分,对象的内存分析,放的执行流程:
jvm 的内存划分
!
对象的内存分析
!
方法的执行流程
!
this关键字
this指代当前对象的地址|引用
调用构造器
在构造器的首行调用其他构造器 this([参数])
区分同名变量
this区分同名方法的局部变量|参数和成员变量时候:this指代调用成员方法的对象,存放的就是这个对象的地址
this在构造器中区分同名参数和成员变量的时候,this指代当前调用构造器的对象,this存放的是这个对象的地址
如果不用区分同名变量.this可以省略.如果要区分同名变量,this不能省略,否则会发生就近原则
注意:
不能使两个构造器首行互相调用,会报错,会造成死循环
另外小注意
System.out.println(“Hello java!”)中out是System类的一个静态成员变量
Java语言为所有的Java程序自动导入包“java.lang”,因此Java程序可以直接用“java.lang”中的类和接口。