对象和类
对象和类
面向对象的理解并举例?
面向对象的核心:找合适的人做合适的事情。
面向对象的编程思想:尽可能的用计算机语言来描述现实生活中的事物。
面向对象:侧重于对象。
类和对象的关系:类是对同一类事物(对象)的抽象,对象是实际存在的是该类的各种实体。
Java中如何来找到对象:
1.sun自己定义好的类,必须知道这个类。
2.自定义类,通过自定义类来创建对象。
类的格式:
Class 类名{
1.公用属性(成员变量):描述对象的公共特性
2.构造方法
3.构造代码块
4.公有方法(普通方法):描述对象的公共行为
}
如何通过类创建对象:
类名 对象名 = new 类名();
匿名对象: 没有名字的对象
注意的点:
1.我们一般不会用匿名对象给属性赋值,无法获取属性值。
2.匿名对象永远都不可能是一个对象。
匿名对象的好处: 书写简单
匿名对象的作用:
1.如果一个对象需要调用一个方法一次的时候,就可以使用匿名对象来调用。
2 可以作为实际的参数方法中调用.
对象的内存分布图?
对象的引用变量是存栈区中的 ,对象是存在堆区中的,成员变量也是随着对象存在堆区中的。
成员变量和局部变量的区别?
位置:
1.成员变量是在类中方法外。
2.局部变量存在方法中
作用域:
1. 成员变量当前类中都可以使用
2.局部变量只能在方法中使用
初始化:
1.成员变量默认有初始值
2.局部变量要想使用必须初始化。
生命周期:
1.随着对象的创建而创建,随着对象的消失而消失
2.出了方法的调用就消失。
构造方法:
在java中类似OC中的初始化方法,它是构造方法。
OC初始化方法的特点:
1.可以在对象创建时初始化属性值
2.初始化方法只能被调用一次
构造方法的作用: 给对应的对象进行初始化,对象创建时初始化属性值
如何创建构造方法:
格式: 修饰符 类名(参数列表){}
构造方法使用注意点:
1.方法名和类名保持一致
2.构造方法没有返回值
3.构造方法不是手动调用的,而是在对象被创建时由java虚拟机调用的
4.如果一个类我们没有给它定义构造方法,JVM在编译的时候会默认添加一个无参的构造方法
5.定义构造方法,JVM就不会创建无参的构造方法,这时我们需要定义一个无参的构造方法。
2.出了方法的调用就消失。
构造函数和一般函数的区别?
结构上:
1.构造函数是没有返回值,方法名就是类名。
2.构造函数是由jvm来调用的,自己是无法手动调用,只会被调用一次。
作用:
1.初始化的时候给属性赋值。
2.描述对象的某种行为。
构造函数什么时候用?
创建对象的时候由jvm调用
重载:在java中方法是可以重名的,我们把这种重名的方法叫做重载。
方法重载的使用注意事项:
1.必须是方法名一样的,才可以叫方法重载
2.任何方法都可以实现方法的重载。
3.保证参数列表的参数的顺序或者个数都不一样
构造放方法中是可以调用普通方法的
在同一个类在中,方法的调用直接拿到方法名调用就可以了
构造代码块
构造代码块的作用:给对象统一初始化。
构造代码块的格式:
{
}
注意: 构造代码块必须是写在成员的位置上的
代码块:
1.构造代码块
2.局部代码块 写在方法中 也是以大括号来表示
3.静态代码块
构造代码块使用注意点:
1.java中编译器编译一个java源文件的时候,会把成员变量的声明放在类的最前面。
2.成员变量的初始化都是在构造方法中执行的。
3.一旦经过java编译器编译后,那么构造代码块中的代码会移到构造函数中执行
4.成员变量的显示初始化和构造代码块,按照当前代码的顺序来执行的,谁在后面就显示谁。
this 关键字
this : 代表所属方法的调用对象。 和OC 中的self很象。
this关键字的作用 :
1.如果成员变量和局部变量重名,在方法中时默认调用局部变量,通过this可以让
方法调用成员变量。
构造方法中是可以调用构造方法的
构造方法中如何调用的?
this(参数);
使用注意点 :
1.this调用构造方法,必须是构造方法中的第一个语句。
2.不要相互调用构造方法。