类与对象
类的访问与static
构造方法与重载
类与对象
类的定义
Java是面向对象的编程语言,最简单的程序也要编写类;类是组成java程序的基本要素,它封装了属性和方法;类是用于创建对象的模板,每个对象有各自的属性值
类是封装对象属性和行为的载体
Java中的数据类型由两种基本成员构成:
属性:可以是基本数据类型,也可以是某个类的实例
方法:只能在类内定义,表示对象具有的行为,与函数类似
类名命名规则与标识符相同
对象的创建
什么是对象?
世界上所有的事物都可以称为对象
对象两大属性
属性:对象的静态特征,如:电视的尺寸,重量
方法:对象具有的行为和功能,如:电视可以选台、调节音量
类和对象的关系:
类是封装对象属性和行为的载体,是抽象的概念
对象是类的一个实例,一个类可以生成多个不同的对象
对象的创建:
1.先声明对象引用变量,然后创建对象
Point p1;
p1=new Point();
2.声明引用变量同时建立对象
Point p1=new Point();
对象的引用:
引用变量名.属性
引用变量名.方法名(实参表)
类的访问与static
类的访问修饰符与访问权限
public:公开类,类成员可以被本包和不同包的任何类和对象所用
缺省:只能被同一个包中其他类和对象引用或继承
protected:不能用
private:不能用
成员变量的修饰符
4种访问权限修饰符:public,protected,缺省,private
static:类变量即静态变量
final:常量,不可改变
公共访问修饰符public:
作为类的修饰符,此类是公共类,可以被所有其他类访问和引用
作为成员变量的访问修饰符,其他类可以无限制的访问该成员变量
类成员要想在任何地方都能被访问,必须同时满足两个条件:类被定义为public;类的成员被定义为public
保护访问修饰符:与它在同一个包的其他类,其他包中该类的子类
缺省访问修饰符:同一个包的类访问和引用
私有访问修饰符:只能在本类中访问,其他类都不能访问
static修饰符
修饰类的数据成员和方法,表示该成员为静态成员,方法为静态方法。
static修饰的类成员或静态成员在定义时就静态分配了内存空间,在生成类对象之前就可以使用静态成员;静态成员是属于整个类的,一个类的多个对象可以共享该静态成员。
无static修饰的实例成员,属于某个对象或实例,必须要创建对象之后才能使用
对静态成员和静态方法的访问:
1.先生成该类实例,然后再通过点运算符访问
2.不生成实例,直接在类名后加上点运算符和静态成员名(推荐使用)
静态方法不能被重载和重写
static方法内部:
1.可以访问static成员变量和方法
2.必须创建对象,通过对象访问非static成员变量或方法
非static方法:可以访问static也可以访问非static成员变量或方法
结论:静态的只能访问静态的,非静态的可以访问一切
无论一个类生成了多少对象,所有这些对象共同使用唯一一份静态成员变量,一个对象对该静态成员变量进行修改,其他对象的静态成员变量也会随之发生变化
静态初始化代码执行是在main方法执行之前完成的
构造方法与重载
方法重载
一个类中多个方法具有相同的方法名,但参数的类型、个数、或次序不同,就构成了方法重载
方法调用的匹配处理原则:
首先看实参和形参类型是否完全一致,如果不一致,就去看实参能否根据自动转换原则赋值给形参
构造方法
类的特殊的方法,用来初始化对象
构造方法的方法名与类名一致,没有返回值,也不用void修饰,不能由用户直接调用,只有使用new创建对象时系统自动调用。
每一个类至少都有一个构造方法
创建一个类的新对象时,系统会自动调用构造方法为新对象初始化;
当类没有声明构造方法,系统会为其自动生成一个默认的无参构造方法;
构造方法使用参数初始化新对象,并且构造方法是可以重载的;
当创建对象时,首先用new分配该对象的内存空间,然后调用某一个构造方法,对该对象内存空间进行初始化
关键字this
局部变量与类的成员变量同名时,成员变量会被隐藏,如果想要访问被隐藏的成员变量,要用关键字this
this关键字用于代表当前正在使用或访问的对象,每一个对象内部都有一个this变量,用于指明自身地址
使用this关键字在自身构造方法中引用其他构造方法,只能用一个而且必须放在第一行