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. ajax从零基础到实战

    一. 什么是AJAX? ajax是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术. 二. 在项目中怎么运用AJAX? 项目主要文件夹目录有img文件夹,css文件夹,js文件夹,如果你要运 ...

  2. Package.json中dependencies依赖包中^符号和~符号前缀的区别

    刚git了webpack的包发现package.json里面dependencies依赖包的版本号前面的符号有两种,一种是~,一种是^,如下图标记: 然后搜了下在stackoverflow上找到一个比 ...

  3. Angular2-除了自定义标签,你还可以这样配置组件的选择器

    开发应用时,UCD给到我们的样式经常使用子类选择器“>”,如果所有组件都用自定义的标签选择器,开发人员无疑要对很多样式做调整. Angular2组件化除了自定义标签,还可以在selector元数 ...

  4. 获取服务器时间ajax

    $.ajax({ type:"OPTIONS", url:"/", complete:function(x){ // alert(x.getResponseHe ...

  5. [linux] C语言Linux系统编程进程基本概念

    1.如果说文件是unix系统最重要的抽象概念,那么进程仅次于文件.进程是执行中的目标代码:活动的.生存的.运行的程序. 除了目标代码进程还包含数据.资源.状态以及虚拟化的计算机. 2.进程体系: 每一 ...

  6. Maven环境的搭建

    1.本地仓库和apache-mavenbin.zip的下载与解压 <1.apache-mavenbin.zip下载网址 http://maven.apache.org/download.cgi ...

  7. 撩课-Web大前端每天5道面试题-Day5

    1.写一个深度克隆方法(es5)? /** * 深拷贝 * @param {object}fromObj 拷贝的对象 * @param {object}toObj 目标对象 */ function d ...

  8. 自定义Jquery插件——由于项目需要,对页面中过长的文本进行截取,鼠标移上去有一个title的提示,所以做了一个Jquery过长文本处理的插件

    由于项目需要,对页面中过长的文本进行截取,鼠标移上去有一个title的提示,所以做了一个Jquery过长文本处理的插件下面是代码: // 掉用方式支持 $('select').textBeauty(1 ...

  9. JS中数组和对象的区别

  10. 02.CSS动画示例-->鼠标悬停图片旋转

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...