类与对象
作者:互联网
类与对象
类
从认识论的角度考虑是先有对象后有类。对象,是具体的事物。类,是抽象的
从代码运行角度考虑是先有类后有对象。类是对象的模板
-
类:由属性(成员变量)和方法(非静态)构成
-
类借助对象体现属性和行为(方法),类中对象的属性以成员变量的形式定义,对象的行为以方法的形式定义。
-
类定义:[访问控制符 修饰符] class 类名{}
-
属性的定义:[访问控制符 修饰符] 属性类型 属性名 ;private String name;
[]代表可选
-
方法:避免方法的死循环
- Java类中以方法来描述一个实体的动态属性。方法的定义中,在返回值的前面可以添加也可以不添加修饰符。
- 一个实体拥有的动态属性(方法)可以是多个,也可以是0个
创建一个类的时候,如果主要用来存储数据,一般按照以下方式进行定义
-
类的定义是公共的,public
-
类的属性必须是私有的,private
-
类当中必须提供getter/setter方法
-
类当中必须有该方法:public 类名(){}(无参构造)
以下信息可以非标准
-
类当中还需提供该方法:public 类名(声明全部的属性参数信息){需要对类当中所有的属性都进行赋值 this.属性名称=属性名称;}
-
该类还需实现public class 类名 implement serializable{}
-
该类还需提供 public string tostring(){return 属性名称+“,”+属性名称+“,”+···}
按照以上方式定义处的类,我们把这种类称之为Java的bean类
对象
-
对象的创建,使用new关键字创建对象;类名 返回的对象名 = new 类名 ();
-
使用new关键字创建的时候,除了分配内存空间之外,还会给创建好的对象进行默认初始化以及对类中构造器的调用
类是抽象的,需要实例化;类实例化后会返回一个自己的对象,赋值之后成为具体对象
- 对象的使用
-
对象的属性:返回的对象名.属性名 = 属性值
-
对象的方法:返回的对象名.方法名();
类与对象的关系
-
类是一种抽象的数据类型,它是对某一类事物整体描述/定义,但不能代表某一个具体事物
-
对象是抽象的具体实例,体现特点,展现具体实例,而不是一个抽象的概念
构造器(构造方法,constructor)
-
类中的构造器也称为构造方法,是在进行创建对象的时候必须要调用的。并且构造器有以下两个特点:
-
必须和类的名字相同
-
必须没有返回类型,也不能写void
-
类名() {};
-
-
一个类即使什么都不写,它也会存在一个方法(如果我们不定义构造方法,java编译器依然会为每个类定义一个无参构造,这个方法是默认的)
-
构造器的核心作用:1、使用new关键字,本质是在调用构造器;
2、完成类实例化的时候,对类的私有属性进行初始化赋值
使用时,建议无参必须定义,有参根据是否需要定义
一旦定义了有参构造,编译器不会自动定义无参构造,如果想使用无参构造,就必须显示定义一个无参构造
-
alt + insert:生成构造器
全局变量与局部变量
-
定义的位置不同:局部变量定义在局部方位内(方法内),全局变量定义在类中;
-
初始化不同:局部变量在使用前必须赋值(局部变量不会初始化赋值),全局变量如果没有赋值,系统会自动初始化赋值
-
生命周期不同:一个对象在程序中(内存中)从生到死的过程,局部变量一般定义在方法中,从该方法被调用开始创建,到该方法从栈中弹出时消亡,全局变量从它所在的对象被创建时开始存在,到该对象从堆中被垃圾回收器回收时消亡。
-
存储的位置不同:局部变量大多存储在栈中(方法栈),全局变量一般存储在堆中;
注意:1. 在同一方法中,不允许有同名的局部变量。在不同的方法中,可以有同名的局部变量; 2. 局部变量可以和全局变量同名,并且在使用时,局部变量具有更高级的优先级。
-
-
局部变量的作用域是离它最近的大括号(就近原则);全局变量的作用域是整个类体中都有效。
-
当方法中含有同名的局部变量和全局变量时,对这个变量名的访问默认是局部变量,借助this,访问全局变量
this关键字
-
this关键字代表本类对象的引用,通过关键字可以隐式的用于调用对象的全局变量和方法;this引用的是本类的一个对象
-
除了可以调用全员变量和成员方法外,还可以作为方法的返回值以及调用类中的构造方法(this(),此时必须在第一行)
-
this不能在静态方法中直接使用
-
调用对象属性
-
调用其他的构造方法,只能构造方法调用构造方法,
this. xxx = ;代表当前类的,=后面的值通常是参数传进来的值
标签:定义,对象,局部变量,全局变量,方法,属性 来源: https://www.cnblogs.com/xuduoduo92/p/16542285.html