Java学习笔记1

我们知道在面向对象的程序设计语言中有两个很重要的概念,就是对象,其中类是某一批对象的抽象,我们可以

把类理解成某种概念,那对象就是一个具体存在的实体。

在接下来讲解的Java语言就是一门面向对象的程序设计语言,其中类和对象是核心。

在Java中创建类主要如下格式:

public class Teacher {

}

其中修饰符除了public之外,还可以使用其它修饰符,如:final、abstract,也可以完全省略这三个修饰符。

以上是个空类,一般定义一个类时,类中最常见成员就是:构造器Field方法,其中用static修饰的成员不能访问

没有用static修饰的成员;构造器用于构造该类的实例,通过new关键字来调用构造器,并返回该类的实例,如果没有

定义构造器,那么系统会为该类提供一个默认的构造器,相反,如果已经定义了构造器的话,系统就不会再为该类提

供构造器了。

接着我们看下完整的定义一个类:

public class Teacher {
	private int age=30;
	public Teacher(){
		
	}
	public void printAge(){
		System.out.println(age);
	}
}

其中Field为:private int age=30;

除了可以使用public来修饰之外,也可以省略修饰符,也可以使用如下修饰符来修饰:private、protected、static、

final ,其中public、protected、private 三个最多只能用其中的一个,可以和static 、final 组合起来修饰Field。

以上Field类型为int,也可以是Java语音允许的任何数据类型,包括基本类型和引用类型。这里定义了int类型,整型,

初始值为30。

上面也定义了一个方法printAge(),方法的修饰符为private,也可以省略,还可以使用public、protected、static、

final、abstract,其中public、protected、private三个最多只能有一个;abstract和final最多也只能使用一个,可以和

static组合起来修饰方法。

以上方法printAge返回值类型是void,也就是没有返回值。返回值类型可以是Java语音允许的任何数据类型,包括基

本类型和引用类型,如果声明了方法返回值类型,那么方法体内必须有个一有效的return语句。

Teacher类的构造器的语法格式也是由修饰符修饰,可以省略,也可以使用public、protected、private其中之一。构

造器的名字必须与类名完全相同,值得注意的是构造器并没有定义返回值类型。如果定义了返回值类型的话,那它就

是一个方法,并不是构造器。

接下来通过new关键字来创建这个类的实例:

public class Main {

	public static void main(String[] args) {
		Teacher teacher=new Teacher();
		teacher.printAge();
	}
}
通过newi关键字创建了一个实例teacher,并调用了类定义的方法printAge()。

在以上代码中我们是通过Teacher teacher=new Teacher();来创建类的实例的,这行代码中产生了两个值,一个是变

量teacher,一个是Teacher对象。

如下图:

                                                                                                

                                                                                                                                  堆内存

当我们创建Teacher对象时,需要有对应的内存来存储Teacher对象的Field。以上使用类来定义的变量就是引用变

量,也就是所有类是引用类型。从上图我们并没有看到引用变量,其实引用变量被存放在栈内存中,用来指向实际的

Teacher对象。如下图所示:

                                                                             

                                                                                                       栈内存                                                         堆内存


栈内存中引用变量teacher并不是真正用来存储对象的Field数据,对象的Field数据实际放在堆内存中,引用变量只是

指向该堆内存中的对象。

根据上面的内容我们知道,当一个对象呗创建成功后,这个对象保存在堆内存中,Java程序不允许直接访问堆内存中

对象,因此就有了引用变量,通过该对象的引用来操作对象。

在推内存中的对象可以有多个引用,也就是引用变量指向同一个对象。

Java还提供了this关键字,用来指向调用该方法的对象。根据this所在的位置的不同,this作为对象的默认引用有两中

情形:

1、构造器中引用该构造器正在初始化的对象

2、在方法中引用调用该方法的对象

值得注意的是,static修饰的方法中不能使用this引用,也就是static修饰的方法不能访问不使用static修饰的普通成

员,因此Java语法规定:静态成员不能直接访问非静态成员。




转载请注明出处:http://blog.csdn.net/hai_qing_xu_kong/article/details/42651911    情绪控_ 




©️2020 CSDN 皮肤主题: 猿与汪的秘密 设计师: 上身试试 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值