string类

C++学习(16)—— 类模板

眉间皱痕 提交于 2020-02-09 12:55:36
1.类模板语法 类模板作用: 建立一个通用类,类中的成员 数据类型可以不具体制定,用一个虚拟的类型来代表。 语法: template<typename T> 类 解释: template —— 声明创建模板 typename —— 表明其后面的符号是一种数据类型,可以用class代替 T —— 通用的数据类型,名称可以替换,通常为大写字母 #include<iostream> #include<string> using namespace std; //类模板 template<class NameType, class AgeType> class Person{ public: Person(NameType name, AgeType age){ this->m_name = name; this->m_age = age; } void showPerson(){ cout << "name: " << this->m_name << " age:" << this->m_age << endl; } NameType m_name; AgeType m_age; }; void test01(){ Person<string,int> p1("alice", 18); p1.showPerson(); } int main(){ test01(); return 0;

rdlc报表动态生成公共类

≯℡__Kan透↙ 提交于 2020-02-09 03:57:12
Code using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Xml; /// <summary> /// DynamicReport 的摘要说明 /// </summary> namespace XNCJWC.Web { public class DynamicReport { public string filename = "" ; public XmlDocument doc = null ; public XmlNode root = null ; public XmlNamespaceManager xnm = null ; public string ns = "" ; public DynamicReport() { // // TODO: 在此处添加构造函数逻辑 // } public DynamicReport(

提取汉字首字母助手类:

穿精又带淫゛_ 提交于 2020-02-08 05:49:54
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace EatGood.BLL.FoodManage { public class GetCNSpell { /// <summary> /// 提取汉字首字母 /// </summary> 施彪 /// <param name="strText">需要转换的字</param> /// <returns>转换结果</returns> public string GetChineseSpell(string strText) { int len = strText.Length; string myStr = ""; for (int i = 0; i < len; i++) { myStr += getSpell(strText.Substring(i, 1)); } return myStr; } /// <summary> /// 把提取的字母变成小写 /// </summary> /// <param name="strText">需要转换的字符串</param> /// <returns>转换结果</returns> public string GetLowerChineseSpell

kotlin面向对象总结-数据类

柔情痞子 提交于 2020-02-07 19:56:58
kotlin通过data class创建数据类。 package com.example.kotlindemo.classsdemo data class PayDataBird(var weight: Double, var age: Int, var color: String) Kotlin转java public final class PayDataBird { private double weight; private int age; @NotNull private String color; public final double getWeight() { return this.weight; } public final void setWeight(double var1) { this.weight = var1; } public final int getAge() { return this.age; } public final void setAge(int var1) { this.age = var1; } @NotNull public final String getColor() { return this.color; } public final void setColor(@NotNull String var1) {

Java入门part5--类和对象

▼魔方 西西 提交于 2020-02-07 05:13:33
类和对象 oop语言的三大特征?(OOP 面向对象的程序设计语言 Object-oriented-program) 继承 封装 多态 什么是类?什么是对象? 类是一类对象的统称,对象是类的具体化的实例。在现实世界中类就相当于设计图纸,而对象就是根据图纸建造出来的房子。 面向对象 关注对象 即参与过程所涉及到的主体 处理大问题 面向过程 关注过程 即整个过程中涉及的行为 处理小问题 类和类的实例化 A . 如何产生一个类 //产生类的语法 class 类名{ field;//成员字段 即类中的元素 method;//成员方法 } 比如 class Person{ //属性 成员变量 实例成员变量 存放在对象内 public String name; public int age; //static修饰的 静态成员变量(也叫类变量)编译时已产生 属于类本身且只有一份 放在方法区 public static int count = 10; //被static和final同时修饰 静态常量 属于类本身 只有一份 后续不可更改 放在方法区 public static final int SIZE = 20; //实例成员常量 被final修饰 也属于对象 放在哪个区不一定 public final int SIZE2 = 30; //构造方法 public Person(String

并发编程之原子类

半腔热情 提交于 2020-02-07 00:49:17
Java从JDK 1.5开始提供了java.util.concurrent.atomic包(以下简称Atomic包),这个包中 的原子操作类提供了一种用法简单、性能高效、线程安全地更新一个变量的方式。 🐤 内部都是采用CAS+volatile实现了无锁并发 这节不讲原理,只讲如何使用。 整体结构 从整体上可以分为5组,分别进行说明 ↘️ 基本类型 使用原子的方式更新基本类型 AtomicInteger:整形原子类 AtomicLong:长整型原子类 AtomicBoolean :布尔型原子类 数组类型 使用原子的方式更新数组里的某个元素 AtomicIntegerArray:整形数组原子类 AtomicLongArray:长整形数组原子类 AtomicReferenceArray :引用类型数组原子类 引用类型 AtomicReference:引用类型原子类 AtomicStampedRerence:原子更新引用类型里的字段原子类 AtomicMarkableReference :原子更新带有标记位的引用类型 对象的属性修改类型 AtomicIntegerFieldUpdater:原子更新整形字段的更新器 AtomicLongFieldUpdater:原子更新长整形字段的更新器 AtomicStampedReference :原子更新带有版本号的引用类型。该类将整数值与引用关联起来

Java-8-Optional类

◇◆丶佛笑我妖孽 提交于 2020-02-06 13:08:46
Java-8-Optional类 java8新特性之Optional类 空指针异常是一个运行时异常,对于这一类异常,如果没有明确的处理策略,那么最佳实践在于让程序早点挂掉,但是很多场景下,不是开发人员没有具体的处理策略,而是根本没有意识到空指针异常的存在。当异常真的发生的时候,处理策略也很简单,在存在异常的地方添加一个if语句判定即可,但是这样的应对策略会让我们的程序出现越来越多的null判定,我们知道一个良好的程序设计,应该让代码中尽量少出现null关键字,而java8所提供的Optional类则在减少NullPointException的同时,也提升了代码的美观度。但首先我们需要明确的是,它并 不是对null关键字的一种替代,而是对于null判定提供了一种更加优雅的实现,从而避免NullPointException 在Java程序开发中使用 null 会带来理论和实际操作上的种种问题 它是错误之源。NullPointerException 是目前Java程序开发中最典型的异常。 它会使你的代码膨胀。它让你的代码充斥着深度嵌套的 null 检查,代码的可读性糟糕透顶。 它自身是毫无意义的。null 自身没有任何的语义,尤其是,它代表的是在静态类型语言中以一种错误的方式对缺失变量值的建模。 它破坏了Java的哲学。Java一直试图避免让程序员意识到指针的存在,唯一的例外是:

9.Java类和对象 详解(一)

北城余情 提交于 2020-02-06 13:05:25
一、面向对象简述 面向对象是一种现在最为流行的程序设计方法,几乎现在的所有应用都以面向对象为主了,最早的面向对象的概念实际上是由IBM提出的,在70年代的Smaltalk语言之中进行了应用,后来根据面向对象的设计思路,才形成C++,而由C++产生了Java这门面向对象的编程语言。 但是在面向对象设计之前,广泛采用的是面向过程,面向过程只是针对于自己来解决问题。面向过程的操作是以程序的基本功能实现为主,实现之后就完成了,也不考虑修改的可能性,面向对象,更多的是要进行子模块化的设计,每一个模块都需要单独存在,并且可以被重复利用,所以,面向对象的开发更像是一个具备标准的开发模式。 在面向对象定义之中,也规定了一些基本的特征: (1)封装:保护内部的操作不被破坏; (2)继承:在原本的基础之上继续进行扩充; (3)多态:在一个指定的范围之内进行概念的转换。 对于面向对象的开发来讲也分为三个过程:OOA(面向对象分析)、OOD(面向对象设计)、OOP(面向对象编程)。 二、类与对象的基本概念 类与对象时整个面向对象中最基础的组成单元。 类 :是抽象的概念集合,表示的是一个共性的产物,类之中定义的是属性和行为(方法); 对象 :对象是一种个性的表示,表示一个独立的个体,每个对象拥有自己独立的属性,依靠属性来区分不同对象。 可以一句话来总结出类和对象的区别:类是对象的模板,对象是类的实例

C++ 模板与泛型编程

跟風遠走 提交于 2020-02-06 05:27:24
《C++ Primer 4th》读书笔记 所谓泛型编程就是以独立于任何特定类型的方式编写代码。泛型编程与面向对象编程一样,都依赖于某种形式的多态性。 面向对象编程中的多态性在运行时应用于存在继承关系的类。我们能够编写使用这些类的代码,忽略基类与派生类之间类型上的差异。 在泛型编程中,我们所编写的类和函数能够多态地用于跨越编译时不相关的类型。一个类或一个函数可以用来操纵多种类型的对象。 面向对象编程所依赖的多态性称为运行时多态性,泛型编程所依赖的多态性称为编译时多态性或参数式多态性。 模板是泛型编程的基础。模板是创建类或函数的蓝图或公式。 函数模板 模板定义以关键字 template 开始,后接模板形参表,模板形参表是用尖括号括住的一个或多个模板形参的列表,形参之间以逗号分隔。模板形参表不能为空。 template <typename T> int compare(const T &v1, const T &v2) { if (v1 < v2) return -1; if (v2 < v1) return 1; return 0; } 模板形参可以是表示类型的类型形参,也可以是表示常量表达式的非类型形参。类型形参跟在关键字 class 或 typename 之后定义.在函数模板形参表中,关键字 typename 和 class 具有相同含义,可以互换使用

第10章-内部类II

喜你入骨 提交于 2020-02-06 03:38:49
Think in java 读书笔记 pikzas 2019.05.05 第十章 内部类 知识点 1.什么是内部类 可以将一个类定义在另一个类的内部 class OuterClass{ class InnerClass{ } } 2.内部类的主要特征是什么 内部类的主要特征是内部类可以随意访问外部类的属性和方法,不论其访问修饰符是什么 public interface Selector { boolean end(); Object current(); void next(); } public class Seq { private Object[] items; private int next = 0; public Seq(int size){ items = new Object[size]; } public void add(Object item){ if(next < items.length){ items[next++] = item; } } private class SeqSelector implements Selector{ private int i = 0; @Override public boolean end() { return i == items.length; } @Override public Object current(