Java——类

1.1类

1.1.1 类的概念

l  类(class)和对象(object)是面向对象的核心概念。

  • 类是对一类事物描述,是抽象的、概念上的定义;对现实世界中具有共性的事物进行抽象就形成了类;类是一种引用类型;类在现实世界中是不存在的,是人们大脑抽象出来的一个概念。
  • 对象是实际存在的该类事物的每个个体,因而也称实例(instance)。
  • “万事万物皆对象”

 

 

 

1.1.2 类及类的成员

现实世界万事万物是由分子、原子构成的。同理,Java代码世界是由诸多个不同功能的类构成的。现实世界中的分子、原子又是由什么构成的呢?原子核、电子!那么,Java中用类class来描述事物也是如此,类的成员有:属性(Field)、方法(Method)、构造器、代码块以及内部类。

class Person{

//属性或成员变量

String name;

boolean isMarried;

//构造器

public Person(){}

public Person(String n,boolean im){

        name = n;isMarried = im;

}

//方法或函数

public void walk(){

        System.out.println("人走路...");

}

public String display(){

        return "名字是:" + name + ",Married:" + isMarried;

}

//代码块

{

        name = "HanMeiMei";

        age = 17;

        isMarried = false;

}

//内部类

class pet{

        String name;

        float weight;

}

}

1.1.3 类的定义

类型修饰符  class  类名 extends 父对象名称 implements 接口名称{

       属性声明;     

       方法声明;

}

说明:修饰符public:类可以被任意访问。类的正文要用{  }括起来

 

public class Person{

          private int age ;              //声明私有变量 age

          public void showAge(int i) { //声明方法showAge( )

                   age = i;

}

}

【创建Java自定义类的步骤】

①定义类(考虑修饰符、类名)

②编写类的属性(考虑修饰符、属性类型、属性名、初始化值)

③编写类的方法(考虑修饰符、返回值类型、方法名、形参等)

1.1.4 类的成员之一:属性

语法格式:

修饰符  类型  属性名 = 初值 ;

说明修饰符private: 该属性只能由该类的方法访问。修饰符public: 该属性可以被该类以外的方法访问。类型:任何基本类型,如int、boolean或任何类。

public class Person{

           private int age;             //声明private变量 age

           public String name = “Lila”;    //声明public变量 name

      }

成员变量(属性)和局部变量的区别:

l  成员变量:在方法体外,类体内声明的变量

  • 成员变量定义在类中,在整个类中都可以被访问。
  • 成员变量分为类成员变量(以static修饰)和实例成员变量(不以static修饰),实例变量存在于对象所在的堆内存中。
  • 成员变量有默认初始化值,为该类型的默认值。
  • 成员变量的权限修饰符可以根据需要,选择任意一个

l  局部变量:在方法体内部声明的变量

  • 局部变量只定义在局部范围内,如:形参(方法签名中定义的变量)、方法内、代码块内等。
  • 局部变量存在于栈内存中。
  • 作用的范围结束,变量空间会自动释放。
  • 局部变量没有默认初始化值,每次必须显式初始化(形参不用)。
  • 局部变量声明时不指定权限修饰符

1.1.5 类的成员之二:方法

语法格式:

修饰符  返回值类型  方法名 (参数列表) {

       方法体语句;

}

说明:修饰符:public, private等。返回值类型:return语句传递返回值。没有返回值:void。

public class Person{

    private int age;

    public int getAge()  { return age; } //声明方法getAge

    public void setAge(int i) {          //声明方法setAge

         age = i;        //将参数i的值赋给类的成员变量age

}

}

1.1.6 类的成员之三:构造方法(构造器、构造函数,Constructor)

构造方法主要用来创建类的实例化对象,可以完成创建实例化对象的初始化工作。

 

语法:

[修饰符列表] 构造方法名(形式参数列表){

                            方法体;

                     }

说明:构造方法的方法名必须和类名一致;构造方法修饰符列表:public、proteced、private

 

构造方法的作用:

①创建对象

②给创建的对象的属性(成员变量)赋值,即初始化成员变量。

 

构造方法应该如何调用?

new 构造方法名(实参); //在堆中开辟空间存储对象

 

注意:

       ①如果一个类没有提供任何构造方法,系统默认提供无参数构造方法。如果一个类已经手动的提供了构造方法,那么系统不会再提供任何构造方法。

       ②成员变量到底什么时候赋值:只有在调用构造方法的时候,才会给成员变量赋值。

       ③类的多个构造器之间构成重载

       ④类对象的属性赋值的先后顺序:属性的默认初始化>属性的显式初始化>通过构造器给属性初始化>通过"对象.方法"的方式给属性赋值

【eclipse操作】

快速生成构造器:菜单栏Source à Generate Constrctor using Fields…

快速生成getset方法:菜单栏Source à Generate Getters and Setters…

1.1.7 类的访问机制

在一个类中,类中的方法可以直接访问类中的成员变量(例外:static方法访问非static,编译不通过)。在不同类中,先创建要访问类的对象,再用对象访问类中定义的成员。

1.1.8 类的内存

 

 

 

Animal a3=a1;a3.name=“维尼熊”; //此时若将a3的属性改变,那a1的属性也被改变了

//a3不意味着相较于a1重新创建的一个对象,而是a1a3共用一个对象实体

posted @ 2019-11-04 16:00  阿江是个程序猿  阅读(168)  评论(0编辑  收藏  举报