面向对象
面向对象编程
是将现实生活中的概念通过程序进行模拟,其 中有两个最重要的概念:
对象、类
对象具有属性和行为
对象是指某个具体事物,而同一类事物有其共性,属 性和行为就是其共性
对这些共性进行归纳,就形成了类,这个过程我们称为抽象以前的编程方式是面向过程
类的定义
类是一个模板,用于创建同一类型的对象
面向对象编程的基本元素是类,类确定了对象的形式和行为
在Java中定义一个类使用关键字class ,一个合法的
标识符和一对表示程序体的大括号 代表类的名称,类名是一个名词,采用大小写混合的方式,每个单词的首字母大写,包含属性和方法的声明。
类中定义属性与方法,表明了由这个类产生的对象所 具有的特征与可以进行的操作
public class
Person
{ //创建一个
公开
的 Person 类
public
String name; //姓名
public
int age; //年龄 属性
公开的修饰符
public
String sex; //性别
/*方法:*/
public voic persaon
( ){ //
无参数的构造方法
}
public voic persaon
(
String name,int age, String sex){ ///有参的
参数的构造方法
this
.name=
name
;
this
.age=
age
;
this
.sex=
sex
;
}
Person
wz
= new
Person();
//
Person
是类型、wz
是对象名、
new
分配内存
构造方法;
属性的默认值
在定义类的属性后,使用的过程中,如果没有给这些 属性赋值,那么JVM
系统将自动为这些属性赋默认值
虽然说每一个类的属性均会有默认值,但是为了避免错误,我们应当在使用这些属性之前,对每一个属性进行手工赋值
创建对象
类的声明是对某一类事物的描述,是一种抽象,要想使用类,需要生成该类的对象
构造方法;
我们没有定义过这个方法该方法名和类名相同;
而“
newPerson()
”的意思是,通过“
Person()
”这个构造方法所指定的方式来生产一个人类对象
“
Person()
”构造方法由系统自动生成,所以我们才得以使用
既然是方法,那么当然可以接受参数
无参数的构造方法;
对于一个类如果我们不定义构造方法,那么程序会自动构建无参构造方法。
构造方法的名称与类名一样,且构造方法没有返回值
当类中已经创建了构造方法时,编译器就不再为类自动创建构造方法
编译器自动创建的构造方法为空方法,当然,我们自定义构造方法时,可以更加灵活的运用
有参数的构造方法;
带参数的方法可以更灵活的让我们给属性赋值
能够实现在创建对象的同时,自由指定属性的值呢
细节
在类中已声明了一个带参数构建方法的情况下编译器不会自动生成无参的默认构建方法。
需要手动加上无参构造方法的声明
this 关键字
this
关键字的含义:可以为调用了其方法的那个对象 生成相应的句柄。也就是说,哪个对象调用了方法, 那么这个方法内的this
指的就是哪个对象
static 关键字
1.如果一个成员被声明为
static
它就能够在它的类的任何对象创建之前被访问,而不必引用任何对象
2.static
成员的最常见的例子是
main()
,因为在程序开 始执行时必须调用main()
,所以它被声明为
static
3.声明为static
的方法有以下几条限制:
◦
它们仅能调用其他的
static
方法。
◦
它们只能访问
static
数据。
◦
·
它们不能以任何方式引用
this
或
super
方法的重载
一个类中可以有很多个方法,方法名相同参数 列表不同(数据类型和个数不同),这就叫做方法的重载。