一、概念
对象是实体 需要被创建 对象可以帮我们做事情
类是规范 我们需要根据类的定义来创建对象
得先有这个类 才能根据这个类来创建相应的对象
二、定义类
★创建对象
例:
new Machine();
或
Machine machine= new Machine();
★让对象做事
例:
首先要:
void work()
{
语句体
}
或
void work(int number)
{
语句体
count=count+number;
}
最后你就可以用(.点运算符)
machine.work();
或
machine.work(10(或其他任意int类型数字))
来调用了
三、外部类与内部类
类里还能套类(禁止套娃
例:
class Outer
{
private int num=4;
public void test()
{
//下面是在方法中定义的内部类
class Inner
{
void show()
{
System.out.println("num="+num);//访问外部类的成员变量
}
}
Inner in=new Inner();//创建内部类对象
in.show();//调用内部类的方法
}
}
public class Main
{
public static void main(String[] args) {
Outer outer=new Outer();//调用外部类对象
outer.test();//调用外部类的test()方法
}
}
四、封装
封装是Java面向对象的三大特征之一
在定义一个类的时候 将类中的属性私有化 即使用private关键字来修饰 私有属性只能在它所在类中被访问
为了能让外界访问私有属性 需要提供一些使用public修饰的公有方法 其中包括用于获取属性值的getXxx()方法和设置属性值的setXxx()方法
对象=属性+服务
数据:属性或状态
操作:函数
可以这么理解:将数据和对数据的操作放在一起封起来即为封装
五、多态
多态也是Java面向对象的三大特征之一
多态即为在同一个方法中 传入参数不同 执行效果各异
public static void animalShout(Animal an)//这里只要是Animal的子类(有shout方法) 都可以被接收
{
an.shout();
}
多态不仅解决了方法同名的问题 而且还使程序变得更加灵活 从而有效地提高程序的可扩展性和可维护性
对象的类型转换
1、向上转型
向上转型:将子类对象的类型进行了提升
什么情况下使用向上转型:当你只想用父类定义的功能 隐藏子类类型
例:
Animal an1=new Cat();//将Cat对象当作Animal类型来使用
Animal an2=new Dog();//将Dog对象当作Animal类型来使用
2、向下转型
向下转型:使其可使用子类特有的方法
例:
Cat cat=(Cat)animal;
向下转型之前须有向上转型
instanceof关键字:用于判断一个对象是否为某个类或接口的实例或者子类实例
方法:对象或对象引用变量 instanceof 类或接口
例:
if (animal instanceof Cat)
{
Cat cat=(Cat)animal;
cat.sleep();
}