Java教程

类与对象

本文主要是介绍类与对象,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

类与对象

从认识论的角度考虑是先有对象后有类。对象,是具体的事物。类,是抽象的

从代码运行角度考虑是先有类后有对象。类是对象的模板

  • 类:由属性(成员变量)和方法(非静态)构成

  • 类借助对象体现属性和行为(方法),类中对象的属性以成员变量的形式定义,对象的行为以方法的形式定义。

  • 类定义:[访问控制符 修饰符] class 类名{}

  • 属性的定义:[访问控制符 修饰符] 属性类型 属性名 ;private String name;

[]代表可选

  • 方法:避免方法的死循环

  • Java类中以方法来描述一个实体的动态属性。方法的定义中,在返回值的前面可以添加也可以不添加修饰符。
  • 一个实体拥有的动态属性(方法)可以是多个,也可以是0个

创建一个类的时候,如果主要用来存储数据,一般按照以下方式进行定义

  1. 类的定义是公共的,public

  2. 类的属性必须是私有的,private

  3. 类当中必须提供getter/setter方法

  4. 类当中必须有该方法:public 类名(){}(无参构造)

以下信息可以非标准

  1. 类当中还需提供该方法:public 类名(声明全部的属性参数信息){需要对类当中所有的属性都进行赋值 this.属性名称=属性名称;}

  2. 该类还需实现public class 类名 implement serializable{}

  3. 该类还需提供 public string tostring(){return 属性名称+“,”+属性名称+“,”+···}

按照以上方式定义处的类,我们把这种类称之为Java的bean类

 

对象

  • 对象的创建,使用new关键字创建对象;类名 返回的对象名 = new 类名 ();

  • 使用new关键字创建的时候,除了分配内存空间之外,还会给创建好的对象进行默认初始化以及对类中构造器的调用

类是抽象的,需要实例化;类实例化后会返回一个自己的对象,赋值之后成为具体对象

  • 对象的使用
  • 对象的属性:返回的对象名.属性名 = 属性值

  • 对象的方法:返回的对象名.方法名();

类与对象的关系

  • 类是一种抽象的数据类型,它是对某一类事物整体描述/定义,但不能代表某一个具体事物

  • 对象是抽象的具体实例,体现特点,展现具体实例,而不是一个抽象的概念

构造器(构造方法,constructor)

  • 类中的构造器也称为构造方法,是在进行创建对象的时候必须要调用的。并且构造器有以下两个特点:

    • 必须和类的名字相同

    • 必须没有返回类型,也不能写void

    • 类名() {};

  • 一个类即使什么都不写,它也会存在一个方法(如果我们不定义构造方法,java编译器依然会为每个类定义一个无参构造,这个方法是默认的)

  • 构造器的核心作用:1、使用new关键字,本质是在调用构造器;

    2、完成类实例化的时候,对类的私有属性进行初始化赋值

使用时,建议无参必须定义,有参根据是否需要定义

一旦定义了有参构造,编译器不会自动定义无参构造,如果想使用无参构造,就必须显示定义一个无参构造

  • alt + insert:生成构造器

全局变量与局部变量

  1. 定义的位置不同:局部变量定义在局部方位内(方法内),全局变量定义在类中;

  2. 初始化不同:局部变量在使用前必须赋值(局部变量不会初始化赋值),全局变量如果没有赋值,系统会自动初始化赋值

  3. 生命周期不同:一个对象在程序中(内存中)从生到死的过程,局部变量一般定义在方法中,从该方法被调用开始创建,到该方法从栈中弹出时消亡,全局变量从它所在的对象被创建时开始存在,到该对象从堆中被垃圾回收器回收时消亡。

  4. 存储的位置不同:局部变量大多存储在栈中(方法栈),全局变量一般存储在堆中;

注意:1. 在同一方法中,不允许有同名的局部变量。在不同的方法中,可以有同名的局部变量; 2. 局部变量可以和全局变量同名,并且在使用时,局部变量具有更高级的优先级。

    • 局部变量的作用域是离它最近的大括号(就近原则);全局变量的作用域是整个类体中都有效。

当方法中含有同名的局部变量和全局变量时,对这个变量名的访问默认是局部变量,借助this,访问全局变量

this关键字

  • this关键字代表本类对象的引用,通过关键字可以隐式的用于调用对象的全局变量和方法;this引用的是本类的一个对象

  • 除了可以调用全员变量和成员方法外,还可以作为方法的返回值以及调用类中的构造方法(this(),此时必须在第一行)

  • this不能在静态方法中直接使用

  1. 调用对象属性

  2. 调用其他的构造方法,只能构造方法调用构造方法,

this. xxx = ;代表当前类的,=后面的值通常是参数传进来的值

这篇关于类与对象的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!