java初级笔记

本文详细介绍了Java中静态方法的使用规范,包括如何调用静态成员及非静态成员,以及静态初始化块的作用。此外,还深入探讨了Java的封装、继承、多态等面向对象特性,并解释了final关键字的用途。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


static变量方法的调用
1、 静态方法中可以直接调用同类中的静态成员,但不能直接调用非静态成员。如果希望在静态方法中调用非静态变量,可以通过创建类的对象,然后通过对象来访问非静态变量。
2、 在普通成员方法中,则可以直接访问同类的非静态变量和静态变量
3、 静态方法中不能直接调用非静态方法,需要通过对象来访问非静态方法。

初始化块
静态初始化块只在类加载时执行,且只会执行一次,同时静态初始化块只能给静态变量赋值,不能初始化普通的成员变量。

访问修饰符:
   private : 本类
   默认    : 本类 同包
   protected:本类 同包 子类
   public  : 任意位置都可用

– 抽象,先不考虑细节
– 封装,隐藏内部实现
– 继承,复用现有代码
– 多态,改写对象行为

面向对象的三大特性:封装、继承、多态
封装:
将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问。
继承:
Java的继承具有单继承的特点,即只能继承自一个父类,每个子类只有一个直接父类,但是其父类又可以继承于另一个类,从而实现了子类可以间接继承多个父类,但其本质上划分仍然是一个父类和子类的关系。
Java的子类不能获得父类的构造器;
子类可以继承父类的所有特性,但其可见性,由父类成员变量、方法的修饰符决定。对于被private修饰的类成员变量或方法,其子类是不可见的,也即不可访问;对于定义为默认访问(没有修饰符修饰)的类成员变量或方法,只有与父类同处于一个包中的子类可以访问;对于定义为public或protected 的类成员变量或方法,所有子类都可以访问。
子类中可以声明与父类同名的成员变量,这时父类的成员变量就被隐藏起来了,在子类中直接访问到的是子类中定义的成员变量。
子类中也可以声明与父类相同的成员方法,包括返回值类型、方法名、形式参数都应保持一致,称为方法的覆盖。
如果在子类中需要访问父类中定义的同名成员变量或方法,需要用的关键字super。Java中通过super来实现对被隐藏或被覆盖的父类成员的访问。super 的使用有三种情况:
访问父类被隐藏的成员变量和成员方法;super.成员变量名;
调用父类中被覆盖的方法,如:super.成员方法名([参数列]);
调用父类的构造函数,如:super([参数列表]);
super( )只能在子类的构造函数中出现,并且永远都是位于子类构造函数中的第一条语句。

使用final关键字做标识有最终的含义
  final可以修饰类、方法、属性和变量
  final修饰类时,则该类不允许被继承
  final修饰方法时,则该方法不允许被覆盖(重写)
  final修饰属性时,则属性不会进行隐式的初始化(即在声明属性的同时要对它进行初始化,或在构造方法中进行赋值,二者只能选其一)
  final修饰变量时,则该变量的值只能赋值一次,则变为常量

多态:
在继承关系中的父类中定义的属性或方法被子类继承之后,可以具有不同的数据类型或表现出不同的行为。这使得同一个属性或方法在父类及其各子类类中具有不同的含义。
Java引用变量有两个类型:一个是编译时类型,一个是运行时类型。编译时的类型由声明该变量时使用的类型决定,运行时的类型由实际赋给该变量的对象决定。如果编译时类型和运行时类型不一致,就会出现所谓的多态(Polymorphism)


 

转载于:https://my.oschina.net/dreambreeze/blog/918541

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值