面向对象编程初步
在Java中,必须先设计类,才能获得对象。
类(设计图):是对象共同的特征描述
对象:是真实存在的示例;
如何定义类:
public class 类名{
1.成员变量(代表属性,一般是名词)(存在堆内存中)
2.成员方法(代表行为,一般是动词)
3.构造器
4.代码块
5.内部类
}
如何得到类的对象:
类名 对象名 = new 类名();
①成员变量的完整定义格式是:修饰符 数据类型 变量名称 初始化值 一般无需指定初始化值,存在默认值
②类名首字母建议大写且有意义,满足“驼峰模式”
③一个Java文件中可以定义多个class类且只能一个类public修饰,而且public修饰的类必须成为代码文件名(实际开发中建议一个文件定义一个class类)
Java语言中除基本类型之外的变量类型都称之为引用类型(Java中的对象和数组是通过引用对其操作的)
局部变量与成员变量
区别:
1.声明位置不同:类中 方法中
2.作用范围不同:当前类的方法 当前方法,不同的方法中即使有同名的局部变量,没有关系互不影响,建议相同
3.内存存放的位置:栈内存中,堆内存中
4.成员变量有默认值,局部变量没有默认值
内存分析:
栈内存:
1.存放:局部变量
2.先进后出,自下而上存储
3.方法执行完毕,自动释放空间
堆内存:
1.存放new出来的对象
2.需要垃圾回收器来回收:System.gc();
方法区:
1.存放:类的信息(代码)static变量 字符串常量等
构造方法:
方法重载:
构造器:
▪ 构造器定义: constructor 构造方法 – 一个在创建对象时被自动调用的特殊方法。
▪ 构造器作用: – 为对象进行初始化(成员变量)工作。
▪ 构造器是一种特殊的方法:
– 构造器的方法名必须和类名一致!
– 构造器虽然有返回值,但是不能定义返回类型(返回值的类型肯定是本类),不能在构 造器里调用return。
– 通过new关键字调用!!
– 如果我们没有定义构造器,则系统会自动定义一个无参的构造方法。如果已定义则 编译器不会添加无参数构造方法!
– 不普通方法一样,构造方法也可以重载。
构造器的作用
用于初始化一个类的对象,并返回对象的地址。
构造器的定义格式:
修饰符 类名(形参列表){
}
示例:
public class car{
//无参构造器
public car(){}
//有参构造器
public car(String name){}
}
构造器的分类:
1.无参数构造器(默认存在):初始化对象时成员变量的数据均采用默认值
2.有参构造器:在初始化对象的时候,同时可以为对象进行赋值
初始化对象的格式:
类型 变量名称 = new 构造器;
Car c = new Car();
构造器的注意事项:
1.任何类定义出来,默认就自带了无参数构造器
2.一旦定义了有参数构造器,无参数构造器就没有了,此时需要自己写无参数构造器