静态类

文件操作

纵然是瞬间 提交于 2020-02-26 14:43:50
一、文件概述 ​ 我们知道,程序中的数据通常是保存在内存中的,当程序关闭后,这些内存中的数据就会被释放,所以如果要保存程序中的数据或者程序计算的结果,我们有两种方式保存:数据库和文件。通常,数据库适用于大批量的包含复制查询的数据维护。对于简单的数据,用数据库进行存储操作复杂而且成本较高。而文件适合于相对简单的数据保存,如很多程序的用户配置信息都保存在文件中。 ​ 在我们平时使用计算机时,常常会碰到各种各样的文件,它们都是用来保存特定数据的。计算机使用工具的不同,读取和保存的文件也不同。 二、如何读写文件 在C#程序里读写一个文件需要以下五个步骤。 a. 创建文件流 b. 创建阅读器或者写入器 c. 执行读写操作 d. 关闭阅读器或者写入器 f. 关闭文件流 //用一个示例来了解文件的读写 //先导包 //using System.IO; FileStream fs=new FileStream("文件路径",fileMode.Create); //写入器 StreamWriter sw=new StreamWriter(fs,Encoding.Default); //阅读器 //StreamReader sr=new StreamReader(fs,Encoding.Default); sw.Write("I Love C#"); sw.Close(); fs.Close(); 1

static关键字修饰类

寵の児 提交于 2020-02-21 05:48:13
可以将一个类的定义放在另一个类的内部定义,这样的类就被称为嵌套类,包含嵌套类的类被称为外部类(outer class),也可以叫做封闭类。 嵌套类可以分为两种: 静态嵌套类(Static Nested Classes):使用static声明,一般称为嵌套类(Nested Classes); 非静态嵌套类(Non-static Nested Classes):非static声明,一般称为内部类(Inner Classes); 嵌套类是它的外部类的成员。非静态嵌套类(内部类)可以访问外部类的其他成员,即使该成员是私有的,而静态嵌套类只能访问外部类的静态成员。 嵌套类作为外部类的一个成员,可以被声明为:private, 包访问,protected,public (注意:外部类只能被声明为 public 或者包范围)。 使用嵌套类的主要优点有以下几个方面: 嵌套类可以访问外部类的数据成员和方法,即使它是私有的; 提高可读性和可维护性:因为如果一个类只对另外一个类可用,那么将它们放在一起,这更便于理解和维护; 提高封装性:给定两个类A和B,如果需要访问A类中的私有成员,则可以将B类封装在A类中,这样不仅可以使得B类可以访问A类中的私有成员,并且可以在外部隐藏B类本身; 减少代码的编写量; 静态嵌套类可以使用外部类的名称来访问它。例如: OuterClass.StaticNestedClass

单例模式与静态类

岁酱吖の 提交于 2020-02-07 18:22:27
单例模式:是一种常用的创建对象的方式,比起普通方式创建对象,这种思想具有非常多的优点。是 java 23种设计模式之一。 构造器被私有化,类中对外提供唯一对象,常见的有懒汉式和饿汉式等。 懒汉式:调用时创建一个对象,后续调用不再重新创建。 饿汉式:类加载时就创建了,并且只创建一次。 静态类(常见的工具类都是):所有的成员都是静态的。可以认为是静态的集合。 例如: Math类是一个静态类。 我们使用 Math.round()方法时,并不关注Math类本身,关注的其实是round方法的方法体中的代码执行逻辑。 使用工具类,其实是使用了工具类中方法的方法体。与类对象无关。 所以单例模式与静态类的区别在于: 单例模式是面向对象的设计。本质上还是创建对象,调用方法。单例存在的根本就是为了得到对象。 静态类是单纯使用方法体,对象没有存在的价值。所以直接使用类名调用,不创建对象。静态类存在是为了快捷方便的使用里面的方法。 二者设计目标不同。 静态类构造函数没有存在的价值,单例模式需要获取对象,所以必须有构造器,但是私有化。而且可以有非静态的成员。(单例模式推荐使用静态的成员) 单例模式: 第一种: 懒汉式 ①,线程不安全。 实例 public class Singleton { private static Singleton instance; private Singleton (){}

Java内部类

南楼画角 提交于 2020-02-06 03:33:24
—— 你放心去浪,我替你说谎。 一、内部类与外部类之间的关系 1、内部类定义于外部类中,是一个相对独立的实体,对该外部类文件进行编译,会产生两个.class文件,其中内部类的.class文件名名称为 外部类名$内部类名.class。 2、内部类可以访问外部类的所有方法和属性,即使是私有,这是因为内部类持有一个外部类的一个引用。外部类无法直接访问内部类的属性和方法,必须通过内部类的对象引用才能进行访问,如果是静态内部类,外部类可以通过内部类的类名来引用静态变量。 3、内部类如果要声明静态变量,内部类必须声明为静态类。 二、非静态内部类对象的创建 1、在外部类之外创建内部类对象,需要先创建外部类对象,在通过外部类对象调用内部类的构造方法进行实例化。外部类对象只能调用内部类的构造方法,非构造方法以及元素必须通过内部类引用才能调用。 2、如果在外部类内部创建内部类对象,可以直接调用内部类的构造方法进行创建。构造方法可以被外部类调用,其他方法和属性必须通过内部类引用或类名才能调用。 三、内部类的分类 1、成员内部类:定义在外部类中的普通类(非static),属于外部类的成员,可以访问外部类的任何变量和方法。 2、局部内部类:定义在外部类的局部范围内,例如定义在方法中,只允许在方法中访问该内部类,不允许在方法外访问。局部内部类一般用在用于辅助解决问题而又不希望创建一个公共类的场景。 3

【Java基础08】内部类、枚举类、日期和时间、Math、Random

妖精的绣舞 提交于 2020-02-06 02:01:26
1 内部类 1.1 概念 大部分时候,类被定义成一个独立的程序单元,在某些情况下,也会把一个类放到另一个类的内部定义,这个定义在其他类内部的类就被称为内部类,包含内部类的类被称为外部类。 1.2 作用 1.提供更好的封装,可以把内部类隐藏在外部类之内,不允许同一个包中的其他类访问该类。 2.内部类成员可以直接访问外部类的私有数据,因为内部类被当成其外部类成员,同一个类的成员之间可以互相访问。但外部类不能访问内部类的实现细节,例如内部类的成员变量。 3.匿名内部类适合用于创建那些仅需要一次使用的类。 注意: 1.内部类比外部类可以多使用三个修饰符:private、protected、static,外部类不可以使用这三个修饰符。 2.非静态内部类不能拥有静态成员。 1.3 非静态内部类 成员内部类分为两种,静态内部类和非静态内部类,使用static修饰的成员内部类是静态内部类,没有使用static修饰的成员内部类是非静态内部类。(在方法中定义的内部类被称为局部内部类) 不允许在外部类的静态成员中直接使用非静态内部类,不允许在非静态内部类中定义静态成员。非静态内部类里不能有静态方法、静态成员变量、静态初始化块。 1.4 静态内部类 如果使用static来修饰一个内部类,则这个内部类就属于外部类本身,而不属于外部类的某个对象。因此使用static 修饰的内部类被称为类内部类

类的非静态常量成员必须在类外初始化,且不能使用static修饰

风流意气都作罢 提交于 2020-01-18 19:44:25
c++规定const静态类成员可以直接初始化,其他非const的静态类成员需要在类外初始化,且不能使用static关键字。 那么为什么要这样规定? 首先C++的静态成员是需要初始化的(实际上需要分配一个内存,不一定需要赋值),初始化是赋一个初始值,而定义是分配内存。静态成员变量在类中仅仅是声明,没有定义。 # include <stdio.h> class A { public : static int a ; //声明但未定义 } ; int A :: a = 3 ; //定义了静态成员变量,同时初始化。也可以写"int A:a;",即不给初值,同样可以通过编译 int main ( ) { printf ( "%d" , A :: a ) ; return 0 ; } 静态成员是单独存储的,并不是对象的组成部分。如果在类的内部进行定义,在建立多个对象时会多次声明和定义该变量的存储位置。 static const int可以在类里面初始化,是因为它既然是const的,那程序就不会再去试图初始化了。 为了避免与一般静态变量或对象相混淆,在类外初始化,不能使用static关键字。 来源: CSDN 作者: LIEYz 链接: https://blog.csdn.net/qq_18998145/article/details/104032085

C#学习之修饰符

霸气de小男生 提交于 2020-01-17 01:04:45
修饰符作用: 修饰符用于限定类型以及类型成员的申明。 C#中修饰符种类: C#中有 13种修饰符 ,按功能可分为三部分: 存取修饰符,类修饰符和成员修饰符 . 存取修饰符: public:存取 访问不受限制 . private:只有包含该成员的类可以存取 .当前类才能访问 internal:只有当前工程可以存取. 只限于类所在的命名空间 (不包括子类) protected: 只有包含该成员的类以及继承的类可以存取 . 类修饰符: abstract:抽象类, 可以被指示一个类只能作为其它类的基类.必须被继承和重写的 sealed: 密封类,指示一个类不能被继承 .防止该类被其它类继承 partial: 部分类,可以将一个 类、结构或接口的定义拆分到两个或多个源文件中,最终编译时将合并成一个文件 ,且各个部分 不能分散在不同程序集中。 成员修饰符: abstract:指示该方法或属性没有实现.只能在抽象类中声明 const:指定域或局部变量的值 不能被改动 . event:声明一个事件. extern: 指示方法在外部实现 . override:对由基类继承成员的新实现. readonly:指示一个域只能在声明时以及相同类的内部被赋值. static: 指示一个成员属于类型本身 ,而不是属于特定的对象. virtual: 指示一个方法或存取器的实现可以在继承类中被覆盖 .

讨论Java中的内部类是什么?

99封情书 提交于 2020-01-14 14:47:56
目录 前言 what is that? 成员内部类 局部内部类 匿名内部类 why use it? how to use? 前言 内部类,讲完前面的特性,今天就讲下内部类这个用的比较多,出现频率挺高的知识点。 what is that? 首先,顾名思义,内部类就是在类的内部,也就是类的类,嵌套在里面的。直接代码介绍,现一般分为成员内部类和局部内部类,还有一种匿名类。内部类拥有对外围对象的引用。大部分使用的都是成员内部类。 成员内部类 是一种与Field、方法、构造器和初始化块相似的类成员; 局部内部类和匿名内部类 则不是类成员。 成员内部类 定义在类里面的成员变量域的类,就是成员内部类。此时的内部类作为其外部类的成员,所以可以使用任意访问控制符如private、protected和public等修饰。 class A { //成员内部类,这种包含类的结构 class b{} } 成员内部类还可以分为静态内部类和非静态内部类。注意: 根据静态成员不能访问非静态成员的规则,外部类的静态方法、静态代码块不能访问非静态内部类,包括不能使用非静态内部类定义变量、创建实例等。 静态内部类(带static) static关键字的作用是把类的成员变成 类相关 ,而 不是 实例相关,即static修饰的成员属于 整个 类,而不属于单个对象。静态内部类只可以访问静态的外部类的方法和对象。但是静态内部类

java 内部类 *** 最爱那水货

馋奶兔 提交于 2019-12-25 10:02:14
   注:    转载于 http://blog.csdn.net/jiangxinyu/article/details/8177326 Java语言允许在类中再定义类,这种在其它类内部定义的类就叫内部类。内部类又分为:常规内部类、局部内部类、匿名内部类和静态嵌套类四种。我们内部类的知识在Android手机开发中经常用到。 一、常规内部类 所谓常规内部类,或者说内部类,指的就是除去后面三种之外的内部类(这算什么解释。。。) 先写一个最简单的内部类的例子,大家感觉一下: 1 public class Outer { 2 public class Inner{ 3 } 4 } 编译一下,我们看到目录中出现了两个class文件,其中有一个文件名叫做Outer$Inner.class,带了一个$符号,这个特点让我们很容易的认出来这是内部类编译后的class文件。 再写一个稍微复杂一点的内部类: 01 public class Outer { 02 03 private int x=1; 04 05 public Outer(){ 06 System.out.println("Outer initial"); 07 } 08 09 public class Inner{ 10 11 public Inner(){ 12 System.out.println("Inner initial");

Java静态类

扶醉桌前 提交于 2019-12-23 06:42:31
http://www.cnblogs.com/kissazi2/p/3971065.html Java中的类可以是static吗?答案是可以。在java中我们可以有静态实例变量、静态方法、静态块。类也可以是静态的。 java允许我们在一个类里面定义静态类。比如内部类(nested class)。把nested class封闭起来的类叫外部类。在java中,我们不能用static修饰顶级类(top level class)。只有内部类可以为static。 静态内部类和非静态内部类之间到底有什么不同呢?下面是两者间主要的不同。 (1)内部静态类不需要有指向外部类的引用。但非静态内部类需要持有对外部类的引用。 (2)非静态内部类能够访问外部类的静态和非静态成员。静态类不能访问外部类的非静态成员。他只能访问外部类的静态成员。 (3)一个非静态内部类不能脱离外部类实体被创建,一个非静态内部类可以访问外部类的数据和方法,因为他就在外部类里面。 基于上面的讨论,我们可以通过这些特性让编程更简单、有效。 /* 下面程序演示如何在java中创建静态内部类和非静态内部类 */ class OuterClass{ private static String msg = "GeeksForGeeks"; // 静态内部类 public static class NestedStaticClass{ //