第二章 面向对象程序设计

类与对象

类的访问与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关键字在自身构造方法中引用其他构造方法,只能用一个而且必须放在第一行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值