类和对象(class)是两种以计算机为载体的计算机语言的合称。对象是对客观事物的抽象,类是对对象的抽象。类是一种抽象的数据类型。它们的关系是,对象是类的实例,类是对象的模板。对象是通过new className产生的,用来调用类的方法;类的构造方法 。
类和对象的定义
类是现实世界或思维世界中的实体在计算机中的反映,它将数据以及这些数据上的操作封装在一起。
对象是具有类类型的变量。类和对象是面向对象编程技术中的最基本的概念。
类和对象的关系
类是对象的抽象,而对象是类的具体实例。类是抽象的,不占用内存,而对象是具体的,占用存储空间。类是用于创建对象的蓝图,它是一个定义包括在特定类型的对象中的方法和变量的软件模板。(转自百度百科)
一.类的组成:
1.1 方法-操作行为
1.2. 属性-变量和描述每个对象的具体特点
二.类的定义与使用
2.1 定义一个类的语法如下:
class 类名称{
属性1;
属性2;
属性n....;
方法1 () { }
方法2 () { }
方法n () {}....
}
上面便是定义了一个完整的类,所以此时的方法不再由主类直接调用,而是由对象调用
例如下面定义了一个简单的Person类
class Person{
public String name;
public int age;
public String Sex;
public Person(String name,int age ,String Sex){
this.name = name ;
this.age = age ;
this.Sex = Sex ;
}
public String getPerson(){
return "姓名:"+this.name+",年龄:"+this.age+ ",性别:"+this.Sex;
}
}
三. 定义(产生)对象:
3.1 定义对象的语法
类名称 对象名称 = new 类名称();
我们以Person类为例产生一个Person类的对象:
Person pre1 = new Person();
Person pre2 = new Person("zhangsan",18,"男");
3.2 通过对象调用实例变量与实例方法
Person p = new Person("Steven",25,"男");
System.out.println(p.name);
System.out.println(p.getPerson());
3.3 对象的内存分析
在上面的代码中出现了new关键字,就表示开辟了一块内存空间。我们可以简单的将JAVA中的内存空间分为
栈内存和堆内存两块区域。
1.栈内存(虚拟机局部变量):存放的是局部变量(各种的基本数据类型,对象引用-堆内存的地址,可以理解
为对象的名称)
2.堆内存:保存的是正真数据,即对象的属性信息
下面我们通过代码和内存分析图给大家讲述这两部分内存
class Person{
public String name;
public int age;
public String Sex;
}
public class Test{
public static void main(String[] args)
{
Person pre =new Person();
pre.name = "李四";
pre.age = 18;
pre.Sex ="男";
} }
在main方法中:Person per = new Person()
上面出现了关键字new ,表明在堆上分配了内存并且产生了Person类对象pre引用这部分内存。
通过下面表示通过pre引用设置堆中属性值
pre.name ="李四";
pre.age = 18;
pre.Sex ="男";
内存图如下:
上面就是从产生对象过程中栈内存和对内存分配过程,对象必须在实例化调用后,否则会产生运行时错误
但编译时不会出错。