zoukankan      html  css  js  c++  java
  • 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共用一个对象实体

  • 相关阅读:
    【Leetcode】23. Merge k Sorted Lists
    【Leetcode】109. Convert Sorted List to Binary Search Tree
    【Leetcode】142.Linked List Cycle II
    【Leetcode】143. Reorder List
    【Leetcode】147. Insertion Sort List
    【Leetcode】86. Partition List
    jenkins 配置安全邮件
    python 发送安全邮件
    phpstorm 同步远程服务器代码
    phpUnit 断言
  • 原文地址:https://www.cnblogs.com/superjishere/p/11792546.html
Copyright © 2011-2022 走看看