目录
1.面向对象的初步认识
1.1 什么是面向对象
java是一门纯面向对象的语言(Object Oriented Program,简称OOP),在面向对象的世界里,一切皆为对象。面向对象是解决问题的一种思想,主要依靠对象之间的交互完成一件事情。
1.2 面向过程和面向对象
两个并不是一门语言,而是解决问题的方法,没有好坏之分,都有其专门的应用场景。
2. 类的定义和使用
2.1 简单认识类:
- 类:描述一类对象所具备的共同属性和行为 。(比较抽象的概念)
- 对象:某个类的具体表现,在每个具体的对象中,属性才有了具体的值。
2.2 类的定义格式
在java中定义类时需要用到class关键字
//创建类
class(定义类的关键字) ClassName{
field;//字段(属性)或者成员变量
method;//行为或者成员方法(主要说明类具有哪些功能)
}
//定义一个学生类
//类名称采用大驼峰定义
public class Student{
//成员前写法统一为public
public String name;
public String gender;
public short age;
public double score;
//此处写的方法不带static关键字
public void DoClass(){}
public void DoHomework(){}
public void Exam(){}
}
注意:
- 在java中,所有的属性和行为都必须在某个类中定义
- 类是一个模板/蓝图,有了类才能产生对象
- 一般情况下,一个文件当中只定义一个类
- main方法所在的类一般要使用public修饰
- public修饰的类必须要和文件名相同
- 不要轻易去修改public修饰的类的名称,如果要修改,通过开发工具修改。
3.类的实例化(创建对象)
3.1 什么是实例化
- 定义了一个类,就相当于与在计算机中定义了一种新的类型。例如Student类,一种新定义的类型,有了这些自定义的类型之后,就可以使用这些类来定义对象。
2. 用类创建对象的过程,称为类的实例化,使用new关键字。
注意:
- new关键字用于创建一个对象的实例
- 使用.来访问对象中的属性和方法
- 同一个类可以创建多个实例。
3.2 类和对象的说明
- 类只是一个模型一样的东西,用来对一个实体进行描述,限制了类有哪些成员。
- 类是一种自定义的类型,可以用来定义变量
- 一个类可以实例化出多个对象,实例化出的对象,占用实际的物理空间,存储类成员变量
- 通过类实例化出的对象才能实际存储数据,占用物理空间、
4.构造方法(类中特殊的成员方法)
4.1 概念
构造方法(也称为构造器)是一个特殊的成员方法,名字必须与类名相同,在创建对象时,由编译器自动调用,并且在整个对象的生命周期内只调用一次。
public class Data {
public int year;
public int month;
public int day;
//构造方法:名字与类名相同,没有返回值类型,设置为void也不行
//一般情况下用public修饰
//在创建对象时由编译器自动调用,并且在对象的生命周期中只调用一次
//构造方法可以重载
public Data(int year, int month, int day) {
this.year=year;
this.month=month;
this.day=day;
System.out.println("data的构造方法");
}
public void printData() {
System.out.println(year + "-" + month + "-" + "day");
}
注意:构造方法的作用就是对对象中的成员进行初始化,并不负责给对象开辟空间。
- 构造方法中,可以通过this调用其他构造方法简化代码
//无参构造方法--内部给成员赋值初始值,该部分功能与三个参数的构造方法重复
//此处可以在无参构造方法中通过this调用带有三个参数的构造方法
//但是this(1900,1,1);必须是构造方法中的第一条语句
public Data(){
this(1900,1,1);
}
public Data(int year, int month, int day) {
this.year=year;
this.month=month;
this.day=day;
}
5. this引用
5.1 为什么要用this引用
形参名不小心与成员变量名相同
5.2 什么是this引用
this引用指向当前对象(成员方法运行时调用该成员方法的对象),在成员方法中所有成员变量的操作,都是通过该引用去访问。只不过所有的操作对用户是透明的,即用户不需要来传递,编译器自动完成。
注意:this引用的是调用成员方法的对象
public class Data {
public int year;
public int month;
public int day;
public Data(int year, int month, int day) {
this.year=year;
this.month=month;
this.day=day;
}
public void printData() {
System.out.println(year + "-" + month + "-" + "day");
}
}
}
- this只能在“成员方法”中使用
- 在“成员方法”中,this只能引用当前对象,不能在引用其他对象。
- this是“成员方法”第一个隐藏的参数,编译器会自动传递,在成员方法执行时,编译器会负责将调用成员方法对象的引用传递给该成员方法,this负责来接收。