java基础(二)

一.对象和对象的引用

  • ###### 对象:

万物皆对象是Java设计之初的理念之一,每个对象都是某个类的一个实例,创建一个对象new User。例如你就是一个对象,就是人这个类的一个实例。

  • ###### 对象的引用:

User user = new User;其中的user就是指向User类的对象的引用。

User user;user = new User;user = new User;

上述代码说明,一个User类的引用可以指向任何一个User类的实例 。

User user = new User;User user2 = user;

上述代码说明一个对象可以被多个引用所指。

java修饰符:default,private,public,protected

、面向对象基础

  • 类与对象
  • 封装
  • 构造方法
  • 方法
  • 重载
  • 对象数组
  • this关键字
  • static关键字

二.Java的三大特性

  • ###### 1.封装

属性用来描述同一类事物的特征,方法是这一类事物可做的操作,封装就是把属于同一个类的共性包括属性和方法归在一个类中。封装也称为信息隐藏,是指利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体,数据被保护在抽象数据类型的内部,尽可能地隐藏内部的细节,只保留一些对外接口使之与外部发生联系

  • ###### 2.继承

一个类继承另一个,继承的类称为子类,被继承的类称为父类。继承后子类自动拥有了父类的属性和方法,子类可以重写父类的方法,及命名与父类同名的成员变量。Java不支持多重继承,一个子类只能继承一个父类。

  • ###### 3.多态

多态又分为设计时多态和运行时多态,例如重载又被称为设计时多态,而对于覆盖或继承的方法,JAVA运行时系统根据调用该方法的实例的类型来决定选择调用哪个方法则被称为运行时多态。

图片 1

1.1类与对象

类:类是抽象的,概念上的,共性的,是对象的模板

对象:个体,具体的,可以看见的,对象是个性的,是该类事物的每个个体,也称为类的实例。

类的组成:

  • 方法
  • 属性

对象的创建

  • 类名 对象名= new 类名()

对象的引用传递问题

  • 注意引用的是对象堆内存的空间

三.内存

User user = new User();User user2 = new User();user.name = "张三";user2.name = "李四";

图片 2

使用默认访问修饰符声明的变量和方法,对同一个包内的类是可见的。

1.2封装

面向对象的特性:封装,继承,多态

封装的概念:使用private实现类的封装,用private关键字修饰属性,修饰方法,private的含义是私有的,使用private修饰的方法和属性不能被外部直接访问。

封装的特性:通过使用封装的属性,要通过get,set方法来获得和设值。

四.访问控制和继承

  • 父类声明public方法,在子类中也必须为public
  • 父类声明protected的方法在子类中要么声明为protected要么声明为public,不能声明为private。
  • 父类声明private的方法,不能被声明。

接口里的变量都隐式声明为 public static
final,而接口里的方法默认情况下访问权限为 public。

1.3构造方法的问题

构造方法的作用:构造方法的作用主要是用来构造对象并且为对象的属性赋值。构造方法的定义规则:

  • 无需任何的放回值类型
  • 方法名称必须和类重名

五.非访问修饰符

  • ###### 1.static修饰符

    • 静态变量:static关键字用来声明独立于对象的静态变量,无论实例化多少对象,静态变量只被拷贝一次,静态变量也称为类变量,局部变量不能为静态变量。
    • 静态方法:static
      关键字用来声明独立于对象的静态方法。静态方法不能使用类的非静态变量。静态方法从参数列表得到数据,然后计算这些数据。

对于静态变量和静态方法可以用类名称.静态变量/静态方法来调用。

  • ###### 2.final修饰符

    • final变量:被final定义的变量,只能被初始化一次。而且被声明为final的对象的的引用不能指向不同的对象,但是对象的数据是可以改变的。既:
      final 对象的引用不能改变,但是里面的值可以改变。
    • final方法:类中的final方法可以被子类继承,但是不能被子类修改,声明final方法就是为了防止方法内容被修改。
    • final类:final 类不能被继承,没有类能够继承 final 类的任何特性
  • 3.abstract修饰符

    • 抽象类:抽象类不能用来实例化,抽象类是为了以后进行扩充的,而且abstract不能和final同时使用。抽象类中可以包含抽象方法和非抽象方法。
    • 抽象方法:抽象方法是一种没有任何实现的方法,该方法的的具体实现由子类提供。抽象方法不能被声明成
      final 和
      static。任何继承抽象类的子类必须实现父类的所有抽象方法,除非该子类也是抽象类。如果一个类包含若干个抽象方法,那么该类必须声明为抽象类。抽象类可以不包含抽象方法。
  • 3.synchronized修饰符被
    synchronized修饰符修饰的方法,同一时间只能被一个线程访问。

  • 4.transient 修饰符

  • 5.volatile 修饰符

访问控制和继承

请注意以下方法继承的规则:

  • 父类中声明为 public 的方法在子类中也必须为 public。

  • 父类中声明为 protected 的方法在子类中要么声明为
    protected,要么声明为 public,不能声明为 private。

  • 父类中声明为 private 的方法,不能够被继承。

1.4方法

方法的定义

public|private|protected|默认  + static|默认|synchroized|native|abstract+返回值类型|void|空+方法名称(参数)+ throws Exception{
   方法体

}

方法的调用:

  • 如果是普通方法,通过对象去调用
  • 如果是构造方法,通过实例化去调用
  • 如果是静态方法,可以通过类名直接访问

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*
*
Website