目录
1. 概念
2. 静态属性
3. 静态方法
4. 静态块
5. 加载顺序
1. 概念
/** * 概念 * 1、凡是静态的,先于对象存在的,与对象无关的 * 2、凡是静态的,就是共享的 * * @author zhongaidong */ public class StaticDemo01 { public static void main(String[] args) { // 成员变量必须存在对象 Fruit f1 = new Fruit(); f1.n = 20; System.out.println(f1.num); // f1.num 自动转换成Fruit.num // 类属性、静态属性 Fruit.num = 200; System.out.println(f1.num); // f1.num 自动转换成Fruit.num // System.out.println(Fruit.num); System.out.println(f1); // 改变静态属性 // f1.num =1000; Fruit.num = 1000; Fruit f2 = new Fruit(); System.out.println(f2); } } class Fruit { // 成员属性 public int n; // 类属性、静态属性 public static int num; public void test(int num) { // System.out.println(Fruit.num); System.out.println(num); } // 构造器 // 成员方法 }
2. 静态属性
/** * 静态属性 * static +属性: 静态属性 ,类属性 -->可以用于计数 、自动编号 * * 注意: * 1. 为了增强可读性,避免混淆成员变量与类变量,一致推荐使用 类.静态属性, * 不要使用 对象.静态属性 来调用类属性 * 2. 当前类中, 类. 可以省略 ,如果 形参|局部变量 与静态变量同名,不要省略 * * @author zhongaidong */ public class StaticDemo02 { public static void main(String[] args) { new Fruit2(); new Fruit2(); new Fruit2(); System.out.println(Fruit2.num); Fruit2 f1 = new Fruit2(); System.out.println(f1.no); } } class Fruit2 { String no; // 类属性、静态属性 public static int num; // 共享 Fruit2() { num++; no = "zad" + num; } // 构造器 // 成员方法 }
3. 静态方法
/** * 静态方法:static + 方法 * 1. 静态方法 只能访问静态属性|信息,不能访问成员信息 * 2. 成员方法:可以访问一切 * 3. 静态方法不能访问this,super * 4. 不能使用 new 类.静态方法() 来调用静态方法。 * * @author zhongaidong */ public class StaticDemo03 { public static void main(String[] args) { Fruit3.test(); // 静态方法 Math.random(); // new Math().random(); // 不能使用 对象|成员.访问 } } class Fruit3 { String no; // 类属性、静态属性 public static int num; // 共享 Fruit3() { } // 构造器 // 成员方法 // 静态方法 public static void test() { // System.out.println(this); //this也是对象信息 num = 10; // no =2; //成员信息 new Fruit3().no = "2"; } }
4. 静态块
/** * 静态块:static + 块{} * 1. 位置:类中方法外 * 2. 作用:加载类信息,且只加载一次。 * 3. 优化:JUST IN TIME : 及时性。使用才加载,如果仅声明变量,不会加载。 * * @author zhongaidong */ public class StaticDemo04 { public static void main(String[] args) { Fruit f1 = null; // 如果仅声明变量,不会加载。 System.out.println(f1); f1.num = 100; // JUST IN TIME,使用即加载 System.out.println(f1.num); // new Fruit(); // 使用即加载 // new Fruit(); // 且只加载一次。 } } class Fruit4 { String no; // 类属性、静态属性 public static int num; // 共享 static { // 静态块 :加载类信息 num = 1000; System.out.println("....加载类信息"); } }
5. 加载顺序
/** * 加载顺序 * 先声明变量,再一次加载。 * * @author zhongaidong */ public class StaticDemo05 { public static void main(String[] args) { System.out.println(Fruit5.num); } } class Fruit5 { // // 1、public static Fruit f1 =new Fruit() ; public static int num = 20; // 共享 public static Fruit5 f1 = new Fruit5(); // 2、public static Fruit f1 =new Fruit() ; Fruit5() { num = 30; } }
相关推荐
面向对象编程语言中,`static`关键字是一种非常重要的机制,它允许我们定义静态成员和静态方法,这些成员和方法不属于任何特定的对象实例,而是属于类本身。在Java中,`static`关键字主要用于以下三个方面:静态变量...
Java中的`static`关键字是面向对象编程中的一个重要概念,它用于修饰类的成员变量和成员方法,以及静态初始化块。在Java中,`static`关键字具有以下几个核心特点和用途: 1. **类属性与类方法的设计思想**: 类的...
面向对象编程是Java的核心特性,本章节主要探讨了两个关键概念——`this`关键字和`static`关键字。在深入理解这两个概念之前,我们先要明白面向对象编程的基本思想:封装、继承和多态。 `this`关键字在Java中用于...
面向对象编程是Java语言的核心特性,...总之,`static`关键字在Java中扮演着至关重要的角色,它是理解和掌握面向对象编程的关键之一。通过学习和实践,我们可以更好地运用`static`,在编程中实现高效且易于维护的设计。
在Java编程语言中,`static`关键字是一个非常重要的修饰符,它有多种用途,涉及到类、对象以及变量和方法的生命周期...通过学习这个视频教程,你将能够深入理解`static`的含义和使用场景,从而更好地进行面向对象编程。
在PHP的面向对象编程中,有多个关键字和魔术方法是经常被用到的,它们各有特定的用途和含义。下面将逐一详细介绍。 首先,关键字`final`在PHP面向对象编程中有着重要的作用。使用`final`关键字可以限定一个类不能被...
在PHP这样的面向对象编程语言中,可以使用class关键字来定义类,用function关键字定义方法,用public、private、protected等关键字控制访问权限,使用extends关键字实现继承,使用interface关键字定义接口,使用__...
Java面向对象编程是Java语言的核心特性之一,它使得程序设计更加灵活、可维护性更强。在本PPT中,我们将深入探讨这一主题,以便你能够更好地理解和应用面向对象的编程理念。 1. 面向对象编程基础 - 类(Class):...
在Java编程语言中,面向对象的概念是核心特性之一。本文将深入探讨`super`和`this`两个关键字的使用,以及访问权限修饰符和方法重写的重要知识点。 首先,`super`关键字代表父类的对象,它用于在子类中访问父类的...
面向对象编程的基本概念包括抽象、对象、类、方法重载、构造器、this关键字和static关键字等。抽象是从事物中舍弃个别的非本质特征,抽取共同的本质特征,只考虑与问题域相关的信息,而忽略与问题域不相关的部分。...
**概念**:封装是面向对象编程的核心之一,它指的是将数据(属性)和方法(行为)绑定在一起,形成一个独立的单元——类。通过这种方式,外部无法直接访问对象内部的数据,只能通过对象提供的方法来操作数据。 **...
在Java语言中,面向对象编程得到了广泛的应用,这使得Java成为企业级开发的首选语言之一。下面将详细阐述Java中的面向对象编程知识点。 1. 类与对象 - 类:类是创建对象的模板,定义了对象的属性(数据成员)和...
在MATLAB中,面向对象编程(Object-Oriented Programming,OOP)是一种强大的设计和实现方法,它允许程序员创建自定义的数据类型,并通过封装、继承和多态等原则来组织代码。《A Guide to MATLAB Object-Oriented ...
Java面向对象编程基础案例 Java是一种广泛使用的面向对象编程(OOP)语言,它以其强大的功能和跨平台性而闻名。面向对象编程的核心概念包括封装、继承和多态,这些都是Java设计的重要基石。 1. 封装:封装是将数据...
### JavaScript面向对象编程详解 #### 一、引言 JavaScript作为一种广泛使用的脚本语言,在Web开发领域占据着举足轻重的地位。尽管JavaScript本质上是一种基于原型的语言,但它也支持面向对象编程的一些特性,使得...
在Java编程语言中,`static`关键字...因此,明智地使用`static`关键字,遵循面向对象设计原则,可以使Java程序更加健壮和灵活。在实际编程中,我们需要根据具体情况权衡`static`的使用,以达到最佳的代码组织和性能。
Java中的`static`关键字是一个非常重要的概念,它在面向对象编程中扮演着核心角色。`static`关键字可以用于修饰变量、方法和代码块,每种修饰都有其特定的用途和意义。 首先,让我们来理解一下`static`修饰的变量,...