JAVA中的类和对象

JAVA是面向对象的编程设计语言。

何为“面向对象”呢,那就先了解什么是“类”和“对象”?

 

1、什么是类和对象

类(class),即具有相同或相似特征的某一类事物的统称。如人类,即“人”这一类事物,其所拥有共同的特征,如人都有发达的大脑、都直立行走、会思考、会劳动,所以才称为“人类”。

对象(object),类中某一特定的成员。如张三、李四,他们拥有人类所有的共同特征,同时还拥有个体特有的特征,如年龄、身高、姓名。

类是对象的抽象和概括;对象是类的实例化,是一个个具体的个体,一切事物皆对象。

 

2、类的属性和方法

类所具有的状态特征,在JAVA中称为成员变量/属性(attribute),如上所述,人类有发达的大脑。

类所具有的行为动作,在JAVA中称为成员函数/方法(method),如上所述,人类直立行走、会思考、会劳动。

类中的成员,包括成员属性和成员方法,如类中有3个属性,2个方法,则该类中共有5个成员。

 

3、类的定义

类就像人类的模板,对象就是使用模板创建出来的个体,所以必须先创建类之后才有对象。

类有属性和方法,

类的属性,即类所具备的特征,如人类的属性是有姓名、身高等

类的方法,也称为类的函数,即类所具备的行为,如人类的方法是会说话、会劳动、会直立行走

JAV创建类的格式如下:

public class Test {
    public String testOne;//创建属性
    public void testTwo() {
    }//创建方法
}

其中,类的关键字class必填,修饰符、成员属性和成员方法及属性方法的名称等,均可变。

 

以下实例,创建一个Person类,

类源文件名必须为Person.java:

//定义一个名为Person的类
public class Person 
{
    //类有三个属性,分别是name、age、job
    String name;
    int age;
    String job;
    //创建方法
    void say()
    {
        System.out.println("姓名:"+name+"\n年龄:"+age+"\n职业:"+job);
    }
}

注:

如果class类名前加了修饰的public,则这个class类的源文件命名必须和类名相同,如public class Person,则类文件名必须为Person.java

 

4、创建对象

类创建完成后,就可以根据该类来创建对象,又叫类的实例化。

在JAVA中,创建类的操作,是通过new操作符来完成的。

方法一:
类名  对象名=new 类名();

 

方法二:
类名 对象名;

对象名=new 类名();

 

public class MyTest {
    public static void main(String[] args) {
        Person zhangsan=new Person();//实例化一人对象,名为zhangsan
        zhangsan.say();//给zhangsan引用类的方法
    }
}

输出结果:

姓名:null
年龄:0
职业:null

 

只要new完成实例创建后,就是在堆内存中产生了一个实体。对象的名称,如以上实例中的zhangsan,就是一个类类型的引用变量,它存在于栈内存中,指向堆中的这个实例。

 

JAVA中,堆内存中的变量都有默认初始化值。成员属性均未赋值,均取初始化默认值。

如果创建类,初始化时,堆内存变量已附值了,这个值称为“显式初始化值”。

 

 创建对象,并指挥该对象做事情,在java中的方式是“对象.对象成员”。

public class MyTest {
    public static void main(String[] args) {
        Person zhangsan=new Person();//实例化一人对象,名为zhnagsan
        zhangsan.name="张三";
        zhangsan.age=20;
        zhangsan.job="公务员";
        zhangsan.say();//给zhangsan引用类的方法
    }
}

输出结果:

姓名:张三
年龄:20
职业:公务员

 

注:在一个JAVA类源文件中,只能有一个public类。

所以,如果类和主函数一起写在同一源文件中时,同时主函数所在类有public修饰,新创建的person类前不能有public;

存在有public修饰的类时,源文件名也必须与该类名完全一致,如public class MyTest,源文件名必须为MyTest.java

如下:

public class MyTest {
    public static void main(String[] args) {
        Person1 zhangsan=new Person1();//实例化一人对象,名为zhnagsan
        zhangsan.name="张三";
        zhangsan.age=40;
        zhangsan.job="公务员";
        zhangsan.say();//给zhangsan引用类的方法
    }
}
//与主函数一起,在同一源文件中创建类,类前不能有public
class Person1
{
    //类有三个属性,分别是name、age、job
    String name;
    int age;
    String job;
    //创建方法
    void say()
    {
        System.out.println("姓名:"+name+"\t年龄:"+age+"\t职业:"+job);
    }
}

输出结果:姓名:张三  年龄:40  职业:公务员

 

 

4、类名和对象名的命令规范

类名:XxxXxx,第一个单词开始,首字母大写,如MyClass、ClassTest

变量名、方法名:xxXxx,即第一个单词小写,第二个单词开始首字母大写,如myAge、myJob

注:这是一种规范,不是规则,不强制规定必须这么写。

 

posted @ 2017-02-03 01:15  自学开发的老司机  阅读(2085)  评论(0编辑  收藏  举报