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共用一个对象实体

  • 相关阅读:
    大数据量下协同推荐的难点与优化方法
    几个常见的Mysql索引问题
    Orchard CMS -Migration文件更新后数据库不更新的问题 new properties not updating after migrationData migration is not working?
    一个可以设置中奖概率的抽奖程序[转]
    Implementing HTTPS Everywhere in ASP.Net MVC application.
    通过jQuery Ajax使用FormData对象上传文件
    SqlServer 数据去重
    向json中添加新的熟悉或对象 Add new attribute (element) to JSON object using JavaScript
    Dapper的基本使用,Insert、Update、Select、Delete
    DapperExtensions and Dapper.Contrib在表构架不是默认dbo时的处理 DapperExtensions and Dapper.Contrib with non-dbo Schema
  • 原文地址:https://www.cnblogs.com/superjishere/p/11792546.html
Copyright © 2011-2022 走看看