final,static静态和非静态,初始化和代码块的区别、父类和子类中都有static变量时的初始化顺序、重写equals()、 instanceof强制转换

final:类不能被继承,方法不能被重写,属性值不能被修改(常量);

可以调用;

static静态常量-----

不需要创建对象,可以直接调用类里面的属性,方法;

示例如下:

加了static说明它是属于整个类的,每个对象值都一样,如下图所示:size是静态的,所以当在下面t1对象中改变size的值时,整个类中的size值都变了;然后作为普通属性的length,当在t1对象中改变其值,并不会改变原始值;

静态方法不能调用非静态的方法和非静态的属性,也不能打印非静态的方法和非静态的属性;可以在静态方法中new一个对象,通过对象来调用非静态的方法和属性;

非静态的可以调用静态的属性和方法;

很少用static来修饰类,因为需要一个外部类来调用静态内部类;

代码块-------

只要在main中创建对象,代码块就会被执行

父类和子类中都有static变量,初始化顺序--------

父类--静态变量/父类--静态初始化块(代码块)

子类--静态变量/子类--静态初始化块(代码块)

子类main方法

父类--变量/父类--初始化块

父类--构造器(构造方法)

子类--变量/子类--初始化块

子类--构造器(构造方法)

总结:静态优先!父类优先!然后初始化块优先级大于构造方法,变量和初始化块同级,但是执行顺序从上往下,所以一般先定义变量

初始化和代码块的区别------

static比非静态优先级高,放下面,上面也可以用;然而非静态的就不可以!

顺序----

Object------中的equals()方法,是用来判断一个字符串是否相等,若有多个字符串,比如说两个对象是否相等,可以通过重写equals()来实现

instanceof:判断类型

if(obj instanceof news){

if(id==(((news)obj).getid()){//强制转换

}

}

时间: 2024-10-12 12:26:41

final,static静态和非静态,初始化和代码块的区别、父类和子类中都有static变量时的初始化顺序、重写equals()、 instanceof强制转换的相关文章

变量、方法以及静态和非静态

变量变量的种类:    1.成员变量    2.局部变量成员变量与局部变量的区别:    定义位置的区别        1.成员变量定义在方法之外,类之内.        2.局部变量定义在方法之内.    作用的区别:        1.成员变量用于描述事物的公共属性.        2.局部变量提供一个一个变量给方法内部使用.    生命周期的区别:        1.成员变量随着对象的创建而存在,对着对象的消失而消失.        2.局部变量在调用了对应的方法时执行到了创建该变量的语句

静态与非静态的使用与区别

静态变量.静态方法.静态代码块.非静态变量及非静态方法的简单介绍 转载自:http://xixinfei.iteye.com/blog/1256085 静态变量 静态变量是类中的一种特殊变量,他在运行是可以说是从属于类,也就是说由该类定义生成的所有对象共用同一个静态变量,内存中只有一个版本.这对于要求在程序运行过程中,只有一个对象副本存于内存非常重要,如在实现单例模式时,为了实现只有一个类对象存于内存中,我们把内对象定义为一个静态变量:为了确保这个执行过程中,只有一个Connection对象村与

关于静态与非静态之具体总结

花费了些功夫,差点儿相同搞明确了: 大家会看到有些地方不停反复出现--那就是你要找的东西 本文參考多处,详细出处就不写了. 静态和非静态: 字段.函数成员的声明中含static修饰符时是静态成员,否则是非静态成员(实例成员): 数据成员能够分静态变量.非静态变量两种. 静态成员属于类,而非静态成员(实例成员)属于对象. 对于类的数据成员来说.假设是静态的,那么他将是类的一部分,为全部实例共享,假设是非静态的.则每一个实例有一份考贝. 类的非静态成员属于类的实例全部,每创建一个类的实例都在内存中为

静态与非静态的异同

转载至-http://bbs.51cto.com/thread-1025127-1.html 静态类 vs 普通类静态类与普通类的区别有以下几点:1)静态类无法实例化而普通类可以:2)静态类只能从System.Object基类继承:普通可以继承其它任何非static和非sealed类,但也只能继承一个类:3)静态类不能继承接口:普通类可以继承多个接口:4)静态类只能包含静态成员:普通类可以包含静态和非静态成员:5)静态类不能作为字段,方法参数和局部变量使用:普通类可以;静态类的意义:可以用静态类

关于静态与非静态之详细总结

花费了些功夫,差不多搞明白了: 大家会看到有些地方不停重复出现--那就是你要找的东西 本文参考多处,具体出处就不写了. 静态和非静态: 字段.函数成员的声明中含static修饰符时是静态成员,否则是非静态成员(实例成员): 数据成员可以分静态变量.非静态变量两种. 静态成员属于类,而非静态成员(实例成员)属于对象.对于类的数据成员来说,如果是静态的,那么他将是类的一部分,为所有实例共享,如果是非静态的,则每个实例有一份考贝. 类的非静态成员属于类的实例所有,每创建一个类的实例都在内存中为非静态成

20151024_001_C#基础知识(静态与非静态的区别,值类型和引用类型,堆和栈的区别,字符串的不可变性,命名空间)

1:我们把这些具有相同属性和相同方法的对象进行进一步的封装,抽象出来类这个概念. 类就是个模子,确定了对象应该具有的属性和方法. 对象是根据类创建出来的. 2:类:语法 [public] class 类名 { 字段; 属性; 方法; } 写好了一个类之后,我们需要创建这个类的对象,那么,我们管创建这个类的对象过程称之为类的实例化.使用关键字new 实例化类===创建类 this:表示当前这个类的对象. 类是不占内存的,而对象是占用内存的. 结构是面向过程的,类是面向对象的,之前没有面向对象的时候

C# 关于静态与非静态的那点小事

所谓静态与非静态,无非就是在声明的时候多用了一个"static". 那么静态与非静态有什么区别呢? 1.对于非静态的成员,包括方法,字段,属性.调用的时候需要用实例化的对象来调用.(new出来的.) 而对于静态成员,调用的时候则需要使用类名去调用. 这就引申出一个问题,可不可以用静态类来实例化对象呢?答案当然是否定的,因为,实例化对象的目的,就是要用实例化的对象来调用属性,方法或字段.对于静态的类来说,      是用类名来调用的,所以对于静态类来说,完全不需要实例化一个对象.也就无法

03.静态和非静态的区别

静态和非静态的区别 方法,字段,属性都可以被static修饰. (1).在非静态类中,即可有实例(非静态)成员,可以有静态成员. 静态成员和非静态成员在调用上有什么不一样呢? (1.1)非静态成员(实例成员)必须被实例化对象之后,的对象名来调用. 对象名.实例成员名; (1.2)静态成员必须被定义它的类的类名来调用. 类名.静态成员名;      //注意,如果要在定义静态方法的类的内部使用静态 方法,我们可以省略类名.直接写. (1.3).静态方法可以访问静态成员,但是静态方法不可以访问非静态

.NET 基础 一步步 一幕幕[面向对象之静态、非静态]

静态.非静态 先来看一段代码来区分静态与非静态: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace 静态和非静态的区别 { /** * 非静态类 * 既可以定义静态字段.静态属性.静态方法. * 也可以定义非静态(实例成员)字段.非静态(实例成员)属性.非静态(实例成员)静态方法. **/ //非