即日起在codingBlog上分享您的技术经验即可获得积分,积分可兑换现金哦。

JAVA三大特性

编程语言 ZhangWang97 13℃ 0评论
本文目录
[隐藏]
三大特性

1.封装:

     封装内主要包括”方法”,”访问权限修饰符号”,”属性”。

1.1.     方法: 

“方法即对象的行为”
方法的声明:【访问权限修饰符号】 【修饰符】 返回值类型 方法名(形式参数列表){(方法体可有可无)}。

2.1.1.1.方法列子

public static void main(String[] args){


【return;】


}

2.1.2. 访问权限修饰:

private:私有权限,同类中访问
default:同包权限,只能在一个包内访问
protected:同包权限和子类权限
public:公共权限,可以被任何类访问

2.1.封装

3.1.1.   将一组逻辑相关的属性方封装在类中,通过访问权限修饰符来隐藏内部细节,公开访问的接口的技术成为类的封装技术

   隐藏内部细节,使其不被外部影响,方便内部的修改
   同时降低外部使用的复杂度



属性用private隐藏,方法用public公开。

3.1.列子

public class Police{
public static void main(String[] args){
      private String name;
     private  String age;
public String getName(){
     return name;
}
public void setName(String name){
       this.name=name;
}
public String getAge(){
      return age;
}
     public void setAge(String age){
        this.age=age;
}
           retrun ture;

}

单列模式

class Police{

private Police(){

}

private static Police police=new Police();

public static Police GetInstance(){

retun police;

}

}

3.1.继承

子类继承父类,只能单继承,方法自动拥有,可实现代码复用

继承与构造器

原则:子类在创键对象是有义务先完成父类对象的构造。

    纯在继承关系时,创键子类对象会先调用父类的无参构造器在调用子类的构造器,

若不存在父类默认无参构造器则会则会报错,或通过suer关键字显示的调用父类的其他构造器。

   super调用父类构造器时只能在子类构造器的第一行。

This关键字==>当前实例

   当前对像的属性,当前对象的方法,当前对象的构造方法。

Super关键字==>父类实例

  父类对象的属性,父类对象的方法,父类对象的构造器。“权限允许”

方法覆盖

在继承关系中

同名,同参,同返回值

不可缩小访问权限修饰符

Protected关键字

方法,构造器,同包以及子类中可以访问。

Final

属性:当创键时必须赋值,之后不可以在更改赋值,(“基本数据类型”,“引用数据类型=>不可以只想其他对象,内部属性可变”)

方法:final方法不可以被子类覆写。

类:final的类不可被继承。

抽象

抽象类:不可被实例化,可以再定义抽象方法(方法用abstract修饰,不能有实现)

含有抽象方法的类,必须是抽象类

多态

含义:对外是一种表现,对内有多种表现形式。

多态的具体表现

表现:方法重载,方法覆盖,多态参数

运行期类型和编译器类型

编译期类型和运行期类型相同

A a= new A()

a.show();

声明A的时候,使用到类型A表示对象类型,被称为编译期类型。

在编译期,虚拟机认为a的是类型是A,对于a所使用的属性和方法和方法的有效性将到类A中去验证。

构造方法A()中的A是运行期类型。

在运行期,将执行运行期类型中的方法

当有继承关系是,可能发生编译期类型和运行期类型不同的情况,即编译期类型是父类类型,运行期类型是子类类型。

A类是B类的父类

A ab=new B();

ab.show();

   对象ab的编译期类型为父类A类。

  运行期类型为子类B类。

  如果一个引用的编译期类型和运行期类型不同,那么一定是编译类型与运行类型有父类子类关系,或者接口与实现的关系。

  ab对象使用的方法,在编译期到类A中校验,而运行则执行B类的方法

   如果一个对象的编译期类型是父类,运行期类型是子类,可以对该对象进行将值类型转换,将编译期类型转换为与运行期类型相同的类,即 B b=(B)ab;























转载请注明:CodingBlog » JAVA三大特性

喜欢 (0)or分享 (0)
发表我的评论
取消评论

*

表情