1.静态变量的使用

2.单例模式的使用。

3.构造方法的私有化。

4.string的使用,两种构造的不同。

小的记忆错误:
· 数组的长度:数组名称.length     这个没()哈~~
· 字符串的长度:调用的是里面的方法:字符串对象.length()    这个有()哈~

Java:

class Info{

//静态变量可以在定义时初始化,是所有对象共同产生的
    static  String city = "chengdu";
     String name ;
     int age;
     //单例模式  一个类只有个一实例化模型

private Info(){}
     private static Info instance = new Info();
     public static Info getInstance(){
         return instance;
     }

static void show(){
         //静态的方法只能调用静态的变量或静态的方法
        // this.name  = "zsf";
         //this.age = 23;
         System.out.println(Info.city);
     }

static void show(Info info){
         //this.name  = "zsf";
         //this.age = 23;
         System.out.println(info.name);
         System.out.println(info.age);
         System.out.println(info.city);
     }
};

public class StaticTest{

public static void main(String args[]){
    //静态方法可以在对象没有实例化之前调用静态方法只能调用静态属性。,
    //非静态方法只能对象实例化后才可以调。
    /*
        Info.show();
        
        Info.show(new Info());

Info info = new Info();
        info.name = "zsf";
        info.age = 23;
        Info.city = "sichuang";

info.show(info);

System.out.println(info.name);
        System.out.println(info.age);
        System.out.println(info.city);
*/
        Info.show();
//  单例模式的调用及使用。
        Info info = null;
        info  = Info.getInstance();

Info info1 = null;
        info1 = Info.getInstance();

info.name = "zsf";
        info.age = 23;

info1.name ="aa";
        info1.age = 23;

System.out.println(info.name);
        System.out.println(info.age);

System.out.println(info1.name);
        System.out.println(info1.age);

}
}

C++:
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <string>

using namespace std;
class Person{
    private:
        Person(){};
        static Person *per;
    public:
        static Person* getInstance(){
            if(per==NULL)
                per = new Person();
            return per;
        }
#if 0
        string name;
        int    age;
        static string city;

void setName(string name);
        void setAge(int age);
        static void show(){
            cout<<Person::city<<endl;
        }
        static     void show(Person *p);
#endif
};

Person* Person::per= NULL ;
#if 0
void Person::setName(string name){
    this->name = name;
}

void Person::setAge(int age){
    this->age = age;
}
void Person::show(Person *p){
    cout<<p->name<<endl;
    cout<<p->age<<endl;
    cout<<p->city<<endl;

}

string Person::city = "sichuang";
#endif
int main(int argc,char *argvp[]){

Person *per2= NULL;
    per2 = Person::getInstance();
#if 0
    Person *per1 = NULL;

per1 = Person::getInstance();
    per2->name = "zsf";
    per2->age  =23;

#if 0
    per1->name ="hello";
    per1->age  = 34;
    cout<<per1->name<<endl;
    cout<<per1->age<<endl;
#endif
    cout<<per2->name<<endl;
    cout<<per2->age<<endl;

/*
    Person::show();
    Person::show(new Person());
    cout<<"==================="<<endl;

Person *per  = new Person();
    per->name = "hello";
    per->age  = 23;
    per->city = "chengdu";
  
    cout<<per->city<<endl;
    per->show(per);
    return 0;
    */
#endif
    return 0;
}

#if 0
#include <iostream>
using namespace std;

class Singelton
{
    public:
        static Singelton* GetInstance()
        {
            if (instance_ == NULL)
            {
                instance_=new Singelton();
            }
            return instance_;
        }

private:
        Singelton()
        {
        }
        static Singelton* instance_;
};

Singelton *Singelton::instance_;
int main()
{

Singelton *s=Singelton::GetInstance();
    Singelton *s2=Singelton::GetInstance();

cout<< s <<endl;
    cout<< s2 <<endl;
}
#endif

#if 1
#include <iostream>
#include <stdlib.h>
#include <stdio.h>

using namespace std;
#define MAX_OBJ_NUM  5
class SimpleTest{
    private:
        SimpleTest(){}
        static SimpleTest *simple;
        int id;
        string info;
        static int count;
    public:

//同java 静态方法只能用静态变量。

static SimpleTest *getInstance(){
            if(count!= MAX_OBJ_NUM){
                simple = new SimpleTest();
                count++;
                return simple;
            }else{
                cout<<"Enough"<<endl;
                return NULL;
            }

}
#if 1
        void setId(int id){
            this->id = id;
        }
        void setInfo(string info){
            this->info = info;
        }
        
        int getId(){
            return this->id;
        }
        string getInfo(){
            return this->info;
        }

#endif
};
//静态变量初始化不同于java。

SimpleTest *SimpleTest::simple = NULL;
int  SimpleTest::count = 0;

int main(int argc,char *argv[]){
    SimpleTest *simple1 = SimpleTest::getInstance();
    cout << simple1 <<endl;
    simple1->setId(23);
    cout<<simple1->getId()<<endl;

SimpleTest *simple2 = SimpleTest::getInstance();
    cout<< simple2 <<endl;
    simple2->setId(34);
    cout<<simple2->getId()<<endl;

SimpleTest *simple3 = SimpleTest::getInstance();
    cout<< simple3 <<endl;
    simple3->setId(34);
    cout<<simple3->getId()<<endl;

SimpleTest *simple4 = SimpleTest::getInstance();
    cout<< simple4 <<endl;
    simple4->setId(34);
    cout<<simple4->getId()<<endl;
   
    SimpleTest *simple5 = SimpleTest::getInstance();
    cout<< simple5 <<endl;
    simple5->setId(34);
    cout<<simple5->getId()<<endl;

SimpleTest *simple6 = SimpleTest::getInstance();
    if(simple6==NULL){
        exit(EXIT_FAILURE);
    }
    cout<< simple6 <<endl;
    simple6->setId(34);
    cout<<simple6->getId()<<endl;
    return 0;
}
#endif

[零基础学JAVA]Java SE面向对象部分.面向对象基础(03)的更多相关文章

  1. 零基础学python习题 - Python必须知道的基础语法

    1. 以下变量命名不正确的是(D) A. foo = the_value B. foo = l_value C. foo = _value D. foo = value_& 2. 计算2的38 ...

  2. 076 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 01 Java面向对象导学

    076 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 01 Java面向对象导学 本文知识点:Java面向对象导学 说明:因为时间紧张,本人 ...

  3. 零基础学Java第五节(面向对象一)

    本篇文章是<零基础学Java>专栏的第五篇文章,文章采用通俗易懂的文字.图示及代码实战,从零基础开始带大家走上高薪之路! 本文章首发于公众号[编程攻略] 类与对象 在哲学体系中,可以分为主 ...

  4. 零基础学Java第六节(面向对象二)

    本篇文章是<零基础学Java>专栏的第六篇文章,文章采用通俗易懂的文字.图示及代码实战,从零基础开始带大家走上高薪之路! 本文章首发于公众号[编程攻略] 继承 创建一个Person类 我们 ...

  5. 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 02 封装的代码实现

    088 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 02 封装的代码实现 本文知识点:Java封装的代码实现 说明:因为时间紧张,本人写博客过程中只 ...

  6. 099 01 Android 零基础入门 02 Java面向对象 03 综合案例(学生信息管理) 02 案例分析及实现 03 编写并测试Student类

    099 01 Android 零基础入门 02 Java面向对象 03 综合案例(学生信息管理) 02 案例分析及实现 03 编写并测试Student类 本文知识点:编写并测试Subject类 说明: ...

  7. 101 01 Android 零基础入门 02 Java面向对象 03 综合案例(学生信息管理) 02 案例分析及实现 05 通过方法实现学生类与专业类关联——方案二

    101 01 Android 零基础入门 02 Java面向对象 03 综合案例(学生信息管理) 02 案例分析及实现 05 通过方法实现学生类与专业类关联--方案二 本文知识点:通过方法实现学生类与 ...

  8. 零基础学Java,PayPal技术专家手把手带你入门

    在最权威的 TIOBE 编程语言排名榜单上,Java 常年稳居第一,可以说是世界上应用最为广泛的一门语言. 同时,在微服务.云计算.大数据.Android App 开发等领域,Java 也是当之无愧的 ...

  9. 零基础学Java第三节(基本输入输出)

    本篇文章是<零基础学Java>专栏的第三篇文章,文章采用通俗易懂的文字.图示及代码实战,从零基础开始带大家走上高薪之路! 本文章首发于公众号[编程攻略] Java程序的命令行参数 我们可以 ...

  10. # 095 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 03 封装总结 01 封装知识点总结

    095 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 ...

随机推荐

  1. [转]Format a ui-grid grid column as currency

    本文转自:https://stackoverflow.com/questions/27747184/format-a-ui-grid-grid-column-as-currency-rc-3-0 Yo ...

  2. 【转】前端——实用UI组件库

    Angular UI 组件 ngx-bootstrap 是一套Bootstrap 组件 官网:https://valor-software.com/ngx-bootstrap/#/ github: h ...

  3. 如鹏网学习笔记(五)MySql基础

    MySQL基础 一.数据库概念 1,网友装备信息.论坛帖子信息.QQ好友关系信息.学籍管理系统中的学生信息等都要“持久化”的保存到一个地方, 如果通过IO写到文件中,那么会非常麻烦,而且不利于多人共享 ...

  4. jQuery 表格中实现“删除线”的增进方法

    之前做了一个删除线的效果,就是类似这样的,在内容的中间加一条线. 但是又有点不同的是,这种删除线不是单纯的在文字之上,而是给一个Table中的一行加上这种删除线效果. 这里有两个方法,是在不同时期写的 ...

  5. Cheatsheet: 2018 08.01 ~ 2018 10.31

    Other Building the Ultimate Developer PC 3.0 - The Parts List for my new computer, IronHeart Face re ...

  6. [PHP] PHP数组的实现哈希表(HashTable)结构

    PHP中使用最为频繁的数据类型非字符串和数组莫属,使用哈希表实现的PHP数组.1.数据结构:保存哈希表容器,保存数据的容器2.哈希函数实现:需要尽可能的将不同的key映射到不同的槽(bucket)中, ...

  7. Java反射学习总结

    我开始学习反射的初衷是为了理解Spring 里的控制反转,其次可以利用反射来达到类中的解耦. 自己写的一些心得,希望能帮到大家 1.反射指的是对象的反向处理操作,是根据对象来取得对象的来源信息. 反射 ...

  8. UGUI——重写Image类实现进度条

    目的: 游戏中经常会用到进度条,但是美术给的图片用filled一拉伸就很难看,如下图 第一种模式是九宫格模式,第二种是filled.而我们需要的是两种可结合的. 如何实现: 新建一个类,继承image ...

  9. High Performance MySQL笔记:count

    在SQL中使用count()好像是非常自然的事情: SELECT COUNT(*) FROM TABLE_NAME; 有时候确实会想过,count(*)和单独的count(column_name)有什 ...

  10. Angular中EventEmitter不是泛型类型

    今天在做angular发射数据时,报错:EventEmitter不是泛型类型, 当时第一点就想到是不是没有引入,一看引入了 后面看api文档发现引入错了,其实是引入下面的 可能是之前快捷输入时,IDE ...