类
类的定义
1.类就像是一个模板,用于创建同一类型的对象
2.面向对象编程的基本元素是类,类确定了对象的形式
和行为
类的声明
1.在Java中定义一个类使用关键字class ,一个合法的标识符和一对表示程序体的大括号。
2.像下面图片中所示:
classname代表类的名称,类名是一个名词,采用大小写混合的方式,每个单词的首字母大写。
body of the class包含属性和方法的声明。
3.
(1)、类的理解可以解释为:它定义了一种新的数据类型。
(2)、类一旦定义后,就可以用这种新类型来创建该类型的
对象。这样,类就是对象的模板,而对象就是类的一个实例。
(3)、类不具备做事的功能,事情由类来定义,但事情
是由对象来做的。类是虚拟的,对象才是实实在在的,
但对象是由类产生的。
类的属性和行为
1.类中定义属性与方法,表明了由这个类产生的对象所具有的特征与可以进行的操作。
2.像下图所示:创建一个Person类并定义姓名,年龄,性别,地址等属性和吃饭,跑步的方法。属性和方法分别相当于Person类产生的对象所具备的特征和可以进行的操作。
对象
接上,已经了解过类,但并未真正产生一个能做事的对象来,那该如何通过这个类,产生一个具有姓名、年龄等属性,可以吃饭、跑步的对象来呢?
对象的创建及使用
类的声明是对某一类事物的描述,是一种抽象,要想使用类,需要生成该类的对象。
创建对象可以使用关键字new,语法如下
和定义简单类型的变量是类似的,只不过需要new关键字来产生对象。
然后使用p.name(对象.属性)来给类中属性赋值,调用方法就是p.eat()(对象.方法)。
属性的默认值
1.在定义类的属性后,使用的过程中,如果没有给这些属性赋值,那么JVM(Java虚拟机)系统将自动为这些属性赋默认值。
2.数值类型的初始值为0,对于char类型,其值为“\u0000”,显示为空字符,boolean类型的初始值为false,而引用类型(如String)的初始值为null。
注:为了避免错误,在使用这些属性之前,都应该对每一个属性进行手工赋值
构造方法
1.Person是类型、p是对象名、new分配内存。
“Person()”方法叫做构造方法,构造方法其实就是生产对象的方法、方式。
“new Person()”的意思是,通过“Person()”这个构造方法所指定的方式来生产一个人类对象。
2.“Person()”构造方法由系统自动生成,既是方法,故:
◦ 无参数的构造方法
◦ 有参数的构造方法
无参数的构造方法
一个类,如果我们不自定义构造方法,那么程序会自动构建无参数构造方法
1.构造方法的名称与类名一样,且构造方法没有返回值。
2.当类中已经创建了构造方法时,编译器就不再为类自动创建构造方法。
3.编译器自动创建的构造方法为空方法。
有参数的构造方法
在类中已经声明了一个带参数构造方法的情况下,编译器不会自动生成无参数的默认构造方法,如果需要可以手工加上无参数构造方法的声明。
带参数的方法可以更灵活的让我们给属性赋值
方法重载
在一个类中可以有多个方法,方法名相同,参数列表不同,这叫做方法的重载。
事实上,重载的方法由于其参数列表的不同,根本上就是不同的方法。
this关键字
1.this 关键字的含义:可以为调用了其方法的那个对象生成相应的句柄。也就是说,哪个对象调用了方法,那么这个方法内的this指的就是哪个对象。
2.this关键字最大的作用就是让类中一个方法,访问该类的另一个方法或者实例变量。
3. 对于static修饰的方法而言,则可以使用类来直接调用该方法,如果在static修饰的方法中使用this关键字,则这个关键字就无法指向合适的对象。
static关键字
1.static关键字 的作用主要是用来修饰变量,方法,代码块。
2.成员变量分为实例变量和类变量,使用 static关键字 修饰的成员变量即为类变量,使用 static 修饰的方法即为类方法。
3.如果一个成员被声明为static,它就能够在它的类的任何对象创建之前被访问,而不必引用任何对象。
4.static成员的最常见的例子是main(),因为在程序开始执行时必须调用main(),所以它被声明为static。
5.声明为static的方法有以下几条限制:
◦ 它们仅能调用其他的static方法。
◦ 它们只能访问static数据。
◦ ·它们不能以任何方式引用this或super。