Java类和对象 概念
主要解释类和对象概念,以及声明,定义,创建,属性,方法,构造方法,实例,实例化的概念,以及特殊函数main
http://www.weixueyuan.net/view/6311.html
Createddate: 2016-01-15
updateddate: 2016-01-22
- 什么是类和对象
可以将类比喻成图纸,对象比喻成零件,图纸说明了零件的参数及其承担的任务;一张图纸可以生产出具有相同性质的零件,不同图纸可以生产不同类型的零件。
- 类和对象使用
在Java中,使用new关键字,就可以通过类来创建对象,即将图纸生产成零件,这个过程叫做类的实例化,因此也称对象是类的一个实例。
类的实例化分为三个步骤:
//第1步:通过类定义一个变量 stu1(通常称为声明对象)
Student stu1;
//第2步: 使用new关键字创建对象stu1(通常称为创建对象),第3步: 使用构造函数初始话对象(进行参数化传值),
stu1=new Student();
注意:类只是一张图纸,起到说明的作用,不占用内存空间;对象才是具体的零件,要有地方来存放,才会占用内存空间。
- 类的成员
类所包含的变量和函数都有特定的称呼,变量被称为属性(通常也称成员变量)
函数被称为方法(普通方法和构造方法)
属性和方法统称为类的成员。
- 访问类的成员
访问有两层意思:一个是赋值,另一个获取值
//访问类的变量(通常称为属性)
stu1.name="Mike";
//访问类的函数(通常称为方法)
stu1.say();
- 声明,定义,创建之间的区别
所谓定义就是(编译器)创建一个对象,为这个对象分配一块内存,并给它取上一个名字,这个名字就是就是我们经常所说的变量名或对象名。
声明有2重含义:
- 告诉编译器一个名字(标识符),这个名字已经匹配到一块内存上,下面的代码用到变量或者对象是在别的地方定义的。声明可以出现多次。
- 告诉编译器一个名字(标识符),这个名字已经被预定了,别的地方再也不能用它来作为变量名或对象名。
例如:变量A
如果int A, 就是声明和定义, 告诉编译器A是一个整数型的变量,并进行初始化,分配了内存空间
例如: 函数A
如果 void A(), 就是声明和定义, 告诉编译器A是一个函数A, 并进行初始化,分配了内存空间
例如:类A
如果A a;就是一个声明,告诉编译器a是A类的一个对象变量,但是不进行初始化;
如果以后a=new A();这就是初始化,分配了内存空间。即创建了对象
总之, 基本类型变量的声明和定义(初始化)是同时产生的;而对于对象来说,声明和定义是分开的。声明的最终目的是为了提前使用,即在定义之前使用,如果不需要提前使用就没有单独声明的必要,变量是如此,函数也是如此,所以声明不会分配存储空间,只有定义时才会分配存储空间
- Java中项目的组织结构
- 例子
/*
Java类和对象 概念
主要解释类和对象概念,以及声明,定义,创建,属性,方法,构造方法,实例,实例化的概念,以及特殊函数main
http://www.weixueyuan.net/view/6311.html
Created date: 2016-01-15
updated date: 2016-01-22
*/
//通过package关键字,声明一个package1包
package package1;
//通过public访问修饰符和class关键字,声明一个 类classexample1_ClassAndObject_1
public class example1_ClassAndObject_1 {
/*
定义一个main方法(函数)
public:访问修饰符,权限最大
static:静态方法,存储在静态存储区,意味着:方法无需实例化对象来调用的方法
main:函数名,jvm识别的特殊函数名
void:意味着:方法无返回值
Sting[] arg: 字符串数组参数arg
*/
public static void main (String[] args) {
//通过类定义一个变量 stu1(通常称为声明对象)
Student stu1;
//使用new关键字创建对象stu1(通常称为创建对象),然后使用构造函数初始化对象(进行参数化传值),
stu1=new Student();
//我们也可以合并一起写,整个过程称为实例化,对象是类的一个实例
//Student stu1=new Student();
//访问类的变量(通常称为属性)
stu1.name="Mike";
stu1.age=20;
stu1.score=100;
//访问类的函数(通常称为方法)
stu1.say();
}
}
//声明一个类Student,定义类成员(包括属性和方法)
class Student {
//定义变量,变量被称为属性(通常也称成员变量)
String name;
int age;
float score;
//定义构造函数(通常称为构造方法)
Student () {
}
//定义普通函数(通常函数被称为普通方法)
void say() {
System.out.println("Name: "+name+""+"Age:"+age+"Score: "+score);
}
}
运行结果:
Name:MikeAge: 20Score: 100.0
参考文献:
- 《Java类和对象的概念》http://www.weixueyuan.net/view/6311.html
- 《变量定义和声明的区别(整理)》http://blog.csdn.net/feitianxuxue/article/details/7204116