面向对象基础
1. 介绍:
把现实世界中的事物---通过操作---映射到程序中,在程序中模拟现实世界中的事物。
2. 概念:
把构成问题的事务按照一定规则划分为多个独立的对象,然后通过调用对象的方法来解决问题。是一种符合人类思维习惯的编程思想。
类与对象:
现实世界中客观存在、程序中我们构建的虚拟对象。
类是描绘对象的共同特征,是对象的模板。对象是类的具体化(实例),一个类可以对应多个对象。
Scanner sc =new Scanner ( System.in );//其中Scanner是一个类,sc就是我们使用Scanner类创建的对象。
class 类名{
//类定义
成员变量1;//成员变量也可以被称为属性。
成员变量2;
成员变量3;
……
构造函数;//可以有参数也可以无参数,用来创建类对象。
成员方法;
……
}
//对象定义声明
//类名 对象名称 = new 类名();
Person p=new Person(构造函数的输入);//new Person()是对象,p是对象的引用。
String str=new String("张三");//这句中产生了两个对象,一个是new String()创建,另一个是"张三"这个常量对象。
3. 三个特征:
-
继承:类与类之间的关系,通过继承可以在无需重新编写原有类的情况下,对原有类的功能进行扩展。
-
封装:将对象的属性和行为封装起来,不需要让外界知道具体实现的细节
-
多态:在一个类中定义的属性和功能被其他类继承后,当把子类对象直接赋值给父类引用变量时,相同引用类型的变量调用同一个方法所呈现出的多种不同行为特征。(重写父类函数、接口继承)
4. 构造方法:
名称与类名相同,没有返回值类型,通过new关键字调用。
如果没有声明构造方法,编译器自动添加一个空参构造。如果写明构造方法则编译器不再添加。
//有另一种解释,用户相当于重写了系统的构造函数。
作用:
-
给参数赋值
-
创建对象
Java中所有类都直接或者间接继承自Object,Object是唯一一个没有父类的类。
5. this
本类对象:
每个类都会自动产生一个this对象,用于在运行过程中区分同名全局和局部变量,可以用于非static修饰内容中。
构造方法:
在一个构造方法中调用另一个构造方法,必须是第一句,this()的形式。
6. static
静态的,在类加载时创建,可以修饰属性、方法、代码块,不能修饰局部变量。
public class Demo{
public static String name;
static{
//代码块
//在类加载时运行,只运行一次
//加载驱动类
}
public static void print{}
}
注意:static修饰的属性和行为属于类,被所有对象共享,建议通过类名访问。