1. 面向对象的初步认知
1.1 什么是面向对象
面向对象是解决问题的一种思想,主要依靠对象之间的交互完成一件事情
2. 类定义和使用
2.1 简单认识类
类是用来对一个实体(对象)来进行描述的,主要描述该实体(对象)具有哪些属性
2.2 类的定义格式
在java中定义类时需要用到class关键字,具体语法如下:
// 创建类
class ClassName{
field; // 字段(属性) 或者 成员变量
method; // 行为 或者 成员方法
}
class为定义类的关键字,ClassName为类的名字,{}中为类的主体。
class WashMachine{
public String brand; // 品牌
public String type; // 型号
public double weight; // 重量
public double length; // 长
public double width; // 宽
public double height; // 高
public String color; // 颜色
public void washClothes(){ // 洗衣服
System.out.println("洗衣功能");
}
public void dryClothes(){ // 脱水
System.out.println("脱水功能");
}
public void setTime(){ // 定时
System.out.println("定时功能");
}
}
注意事项
1.类名注意采用大驼峰定义
2.成员前写法统一为public
,后面会详细解释
3.此处写的方法不带 static
关键字. 后面会详细解释
注意事项:
- 一般一个文件当中只定义一个类
- main方法所在的类一般要使用
public
修饰(注意:Eclipse默认会在public修饰的类中找main方法) - public修饰的类必须要和文件名相同
- 不要轻易去修改public修饰的类的名称,如果要修改,通过开发工具修改
3. 类的实例化
3.1 什么是实例化
定义了一个类,就相当于在计算机中定义了一种新的类型,与int,double类似,只不过int
和double
是java语言自带的内置类型,而类是用户自定义了一个新的类型,有了这些自定义的类型之后,就可以使用这些类来定义实例(或者称为对象)。
用类类型创建对象的过程,称为类的实例化,在java中采用new
关键字,配合类名来实例化对象。
public class Main{
public static void main(String[] args) {
PetDog dogh = new PetDog(); //通过new实例化对象
dogh.name = "阿黄";
dogh.color = "黑黄";
dogh.barks();
dogh.wag();
PetDog dogs = new PetDog();
dogs.name = "阿黄";
dogs.color = "黑黄";
dogs.barks();
dogs.wag();
}
}
注意事项
new
关键字用于创建一个对象的实例.
使用 . 来访问对象中的属性和方法.
同一个类可以创建对个实例.
类和对象的关系
- 打一个比方,类就是衣服的设计图,类的实例化就好比,将设计图的衣服做了出来.
- 类就好比是一个模型,对一个东西的描述,限制了这个类里面有什么东西
- 一个类可以实例化多个对象,实例化出的对象占用实际的物理空间,存储类成员变量
this.引用
什么是this引用
this引用只想当前对象(成员方法运行是调用的成员方法的对象),在成员方法中所有成员变量的操作,都是this引用访问的(只不过操作不对用透明,不需要用户来传递编译器直接完成)
public class Date {
public int year;
public int month;
public int day;
public void setDay(int year, int month, int day){
this.year = year;
this.month = month;
this.day = day;
}
public void printDate(){
System.out.println(this.year + "/" + this.month + "/" + this.day);
}
}
注意:this引用的是调用成员方法的对象。
this引用的特性
- this的类型:对应类类型引用,即哪个对象调用就是哪个对象的引用类型
- this只能在"成员方法"中使用
- 在"成员方法"中,this只能引用当前对象,不能再引用其他对象
- this是“成员方法”第一个隐藏的参数,编译器会自动传递,在成员方法执行时,编译器会负责将调用成员方法
对象的引用传递给该成员方法,this负责来接收