码迷,mamicode.com
首页 > 编程语言 > 详细

Java类和对象

时间:2019-09-27 21:20:59      阅读:85      评论:0      收藏:0      [点我收藏+]

标签:返回   公有   jvm   transient   abs   特定   实现   变量类型   style   

对象:对象是类的一个实例,有状态和行为。

类:类是一个模板,它描述一类对象的行为和状态。

创建类

class 类名{
//属性
//方法
}

创建对象

创建对象三个步骤:

声明:申明一个对象,包括对象名称和对象类型

实例化:使用关键字new来创建一个对象

初始化:使用new创建对象时,会调用构造方法初始化对象

类名 对象名=new 类名();
//调用属性进行赋值或取值
对象名.属性名
//调用方法传参、执行和获得返回值
对象名.方法名

常量与变量

常量用关键字final定义,在程序运行过程不能修改

final int a=3;

变量

int b=3;

变量类型

局部变量:在方法中定义的变量,变量声明和初始化都在方法中,方法结束后变量自动销毁。

成员变量/全局变量:定义在类中,方法体之外的变量。在创建对象的时候实例化。

类变量:一种特殊的成员变量,被static关键字修饰。

构造方法

每个类都有构造方法。如果没有显示地为类定义构造方法,Java编译器将会为该类提供一个默认构造方法。

构造方法的名称与类同名,没有返回,也不需要使用void。

构造方法也有多态特性,构造方法随着对象的初始化而被调用。

有无返回

在定义方法时,使用关键字void定义该方法无返回值

如果有返回值,则需要在定义方法时确定返回的数据类型,并在方法体内部使用return返回对应数据类型的值

有无参数

在定义方法时,可以确定传递的参数列表。

在实例对象调用有参数的方法时,必须按照方法中定义的参数列表传值调用。

访问控制修饰符

访问控制修饰符控制对类、变量、方法和构造方法的访问。

default:默认的,在同一包内可用。使用对象:类、接口、变量、方法

private:私有的,在同一类中可用。使用对象:变量、方法。不能修饰类

public:公有的,对所有类可用。使用对象:类、接口、变量、方法

protected:保护的,对同一包内的类和所有子类可用。使用对象:变量、方法。不能修饰类

非访问控制修饰符

static

静态变量:无论一个类实例化多少对象,它的静态变量只有一份拷贝。

静态方法:静态方法不能使用类的非静态变量。

静态变量和静态方法是独立于对象的。

调用静态变量和静态方法可以使用类名直接调用。

final

final变量:常量,且必须显示指定初始值。

final方法:父类中的final方法可以被子类继承,但是不能被子类重写。

final类:不能被继承。

abstract

抽象类:

抽象类不能用来实例化对象,声明抽象类的唯一目的是为了将来对该类进行扩充。

一个类不能同时被abstract和final修饰。如果一个类包含抽象方法,那么该类一定要声明为抽象类,否则将出现编译错误。

抽象类可以包含抽象方法和非抽象方法。

抽象方法:

抽象方法是一种没有任何实现的方法,该方法的具体实现由子类提供。

抽象方法不能被声明成final和static修饰。

任何继承抽象类的子类必须实现父类的所有抽象方法,除非子类也是抽象类。

如果一个类包含若干个抽象方法,那么该类必须声明为抽象类。抽象类可以不包含抽象方法。

抽象方法的声明以分号结尾。

synchronized

synchronized关键字声明的方法同一时间只能被一个线程访问

transient

序列化的对象包含被transient修饰的实例变量时,Java虚拟机JVM跳过该特定的变量。

该修饰符包含在定义变量的语句中,用来预处理类和变量的数据类型。

volatile

volatile修饰的成员变量在每次被线程访问时,都强制从共享内存中重新读取该成员变量的值。

而且,当成员变量发生变化时,会强制线程将变化值回写到共享内存。这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值。

一个volatile对象引用可能是null。

继承

使用关键字extends

子类拥有父类非private的属性和方法

子类可以拥有自己的属性和方法

子类可以用自己的方式实现父类的方法

单继承,多重继承

提高了类之间的耦合性。

super和this

super:实现对父类成员的访问,用来引用当前对象的父类

super.属性
super.方法
super()//构造方法

 

this:指向自己的引用

接口

interface定义

接口能被继承,也能被实现

实现

使用关键字implements,可以同时继承多个接口,接口与接口之间用逗号分隔

重写

子类对父类的允许访问的方法的实现过程进行重新编写,返回值和形参不能改变

重载

在一个类里面,方法名字相同,而参数不同,返回类型可以相同也可以不同。

多态

多态是同一个行为具有多个不同表现形式或形态的能力。

多态存在的三个必要条件:继承、重写、父类引用指向子类对象

当使用多态调用方法时,首先检查父类中是否有该方法,如果没有,则编译错误;如果有,再去调用子类的同名方法。

封装

将类属性设置为私有的,由类中方法进行属性的设置和读取。

 

Java类和对象

标签:返回   公有   jvm   transient   abs   特定   实现   变量类型   style   

原文地址:https://www.cnblogs.com/blunFan/p/11600185.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!