java面向对象
java也属于面向对象编程 (面向对象的核心 : 找到合适的对象做合适事情。)
面向对象的三大特征 : 封装,继承,多态。
类,对象。对象 :真实存在的唯一的事物。面向对象编程(oop)思想力图
使对计算机语言中的事物的描述和自然中的事物 尽可能保持一致。
java中如何来找合适的对象:
1.sun已经指定好的类,通过定制好的类创建对象, 需要认识这些类。
2.自定义类 ,通过自定义类来创建对象。
类中包含 :
属性 ,方法。
类的定义格式 :
class 类名 { 属性(成员变量) : 描述事物的公共的特点。
方法 : 描述事物的行为 (做什么事情) }
通过自定义的类来创建一个对象
格式:
类名 对象名(变量名) = new 类名();
//访问属性 :
对象.属性名
//设置属性:
对象.属性名 = 数据。
//调用对象的方法:
对象.方法名();
属性 格式 : 数据类型 变量名
成员变量和局部变量额区别:
定义的位置 :
1.定义在类中,方法外。 2.局部变量是定义在方法中。
作用上:
1.成员变量是用来描述同一类事物(对象)的公共属性。
2.局部变量就是提供一个变量给方法使用
生命周期 :
1.成员变量随着对象的创建而创建,随着对象的消失而消失。(成员变量作用在整个范围中,如果需要在当前泪中使用成员变量,直接哪拿到变量名就可以使用)
2.局部变量随着方法调用而创建,出了方法的作用域就消失
初始值来区分:
1.成员变量,如果你没有赋值,它是有默认值的。
int 默认是0
float 默认是0.0f
double 默认是 0.0
boolean 默认 false
char 默认 ' '
String (引用类型)null;
2.局部变量:
局部变量是没有初始值的,必须初始化才能使用。
成员变量在当前类中是可以直接通过变量名来使用,如果变量名需要在其他类中使用,就需要创建对象
类和对象的关系:
类是对同一事物的抽象,对象实际存在的该类的各种实体,面向对编程的核心:找合适的对象来做
合适的事;
java中如何找到对象
1sun自己定义好的类,必须知道这个类2自定义类,通过自定义类来创建对象
类的格式:
class 类名{
属性(成员变量)描述对象的公共特性
买哦书对象的公共行为
}
如何通过类创建对象 类名对象名 = new 类名();
class Baby { //属性 : 变量类型 变量名 = 值; String name; int age; String sex;
//方法
// 修饰符 返回值类型 方法名(参数列表){}
public void cry(){ System.out.println(name+"哭了"); }
3匿名对象
我们一般不会用匿名对象给属性赋值,无法获取属性值,匿名对象永远都不可能是一个对象
好处:书写简单
使用场景:如果一个对象需要调研一个方法中一次的时候,就可以使用匿名对象
可以作为实际参数在方法中调用
4构造方法
在java中类似于oc的初始化方法叫构造方法
OC中初始化构造方法特点:
可以在对象创建初始化属性值
初始化方法只能调用一次
构造方法的租用:给对象初始化,对象创建初始化属性值
如何来创建构造方法:格式 修饰符 类名 (参数列表){}
构造方法注意特点:方法名与类名保持一致;构造方法没有返回值;构造方法不是我们手动调用的,而是对象被创建的时候java虚拟机调用的;如果一个类我们没有给他定义构造方法,java虚拟机在编译的时候会给这个类默构造方法,添加一个无参构造方法;如果你自己定义构造方法,java虚拟机就不会在创建无参构造方法,这个时候就自己定义一个无参构造方法
5方法重载
在java中方法是可以重名的,我们把这种方法重名叫做方法的重载
:1必须是方法名一样,才可以叫方法重载;任何方法都可以实现方法重载;保证参数列表的参数顺序或者个数不一样
构造方法中额可以在调用普通方法,在通过个一个类中方法的调用直接拿到方法名调用就饿可以了
构造代码块左用:给对象统一初始化 ;必须是写在成员变量的位置上;对象被创建出来时候就执行了,
代码块:构造代码块;局部代码块,写在方法中,也是以大括号来表示;静态代码块
构造代码块注意点:java中编译一个java源文件的时候,会把成员变量的声明放在类的最前面;成员变量的初始化都是在构造方法中执行;一旦经过java编译器后,那么代码块中的代码会被移动到构造函数中去;成员变量的显示初始化和构造代码块,按照当前的代码顺序来执行,谁在后面就显示谁