[零基础学JAVA]Java SE面向对象部分.面向对象基础(03)
2.单例模式的使用。
3.构造方法的私有化。
4.string的使用,两种构造的不同。
· 数组的长度:数组名称.length 这个没()哈~~
· 字符串的长度:调用的是里面的方法:字符串对象.length() 这个有()哈~
Java:
//静态变量可以在定义时初始化,是所有对象共同产生的
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);
}
}
#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;
}
#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)的更多相关文章
- 零基础学python习题 - Python必须知道的基础语法
1. 以下变量命名不正确的是(D) A. foo = the_value B. foo = l_value C. foo = _value D. foo = value_& 2. 计算2的38 ...
- 076 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 01 Java面向对象导学
076 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 01 Java面向对象导学 本文知识点:Java面向对象导学 说明:因为时间紧张,本人 ...
- 零基础学Java第五节(面向对象一)
本篇文章是<零基础学Java>专栏的第五篇文章,文章采用通俗易懂的文字.图示及代码实战,从零基础开始带大家走上高薪之路! 本文章首发于公众号[编程攻略] 类与对象 在哲学体系中,可以分为主 ...
- 零基础学Java第六节(面向对象二)
本篇文章是<零基础学Java>专栏的第六篇文章,文章采用通俗易懂的文字.图示及代码实战,从零基础开始带大家走上高薪之路! 本文章首发于公众号[编程攻略] 继承 创建一个Person类 我们 ...
- 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 02 封装的代码实现
088 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 02 封装的代码实现 本文知识点:Java封装的代码实现 说明:因为时间紧张,本人写博客过程中只 ...
- 099 01 Android 零基础入门 02 Java面向对象 03 综合案例(学生信息管理) 02 案例分析及实现 03 编写并测试Student类
099 01 Android 零基础入门 02 Java面向对象 03 综合案例(学生信息管理) 02 案例分析及实现 03 编写并测试Student类 本文知识点:编写并测试Subject类 说明: ...
- 101 01 Android 零基础入门 02 Java面向对象 03 综合案例(学生信息管理) 02 案例分析及实现 05 通过方法实现学生类与专业类关联——方案二
101 01 Android 零基础入门 02 Java面向对象 03 综合案例(学生信息管理) 02 案例分析及实现 05 通过方法实现学生类与专业类关联--方案二 本文知识点:通过方法实现学生类与 ...
- 零基础学Java,PayPal技术专家手把手带你入门
在最权威的 TIOBE 编程语言排名榜单上,Java 常年稳居第一,可以说是世界上应用最为广泛的一门语言. 同时,在微服务.云计算.大数据.Android App 开发等领域,Java 也是当之无愧的 ...
- 零基础学Java第三节(基本输入输出)
本篇文章是<零基础学Java>专栏的第三篇文章,文章采用通俗易懂的文字.图示及代码实战,从零基础开始带大家走上高薪之路! 本文章首发于公众号[编程攻略] Java程序的命令行参数 我们可以 ...
- # 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封装 ...
随机推荐
- 【TCP协议详解】
为什么会有TCP/IP协议 在世界上各地,各种各样的电脑运行着各自不同的操作系统为大家服务,这些电脑在表达同一种信息的时候所使用的方法是千差万别.就好像圣经中上帝打乱了各地人的口音,让他们无法合作一样 ...
- RxJS库
介绍 RxJS是一个异步编程的库,同时它通过observable序列来实现基于事件的编程.它提供了一个核心的类型:Observable,几个辅助类型(Observer,Schedulers,Subje ...
- UEditor图片焦点错位,火狐document.body.scrollTop不管用的问题
转自 http://liyunpeng.iteye.com/blog/2068751 关于 document.body.scrollTop 在火狐浏览器中不管用的问题 看网上有人写通过判断docume ...
- 面向对象(基础oop)之进入继承
大家好,我叫李京阳,,很高兴认识大家,之所以我想开一个自己的博客,就是来把自己所了解的知识点通过自己的话写一下,希望被博客园的朋友们点评和一起讨论一下,也希望从博客园中多认识一些软件开发人员!现在我开 ...
- hdu 1026 Ignatius and the Princess I 搜索,输出路径
Ignatius and the Princess I Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (J ...
- centos 安装cloud foundry CLI
步骤: 1.wget -O /etc/yum.repos.d/cloudfoundry-cli.repo https://packages.cloudfoundry.org/fedora/cloudf ...
- tomcat-虚拟目录的映射
虚拟目录的映射 1.新建 ${tomcat安装目录}\conf\Catalina\localhost\xxx.xml 文件. 文件内容: <Context path="/xxx&qu ...
- 用Jq遍历一个div里面的所有input 并判断是否为空?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- word 文档刷文字格式
WORD文档增加的宏文件, 作用:对全文中文字体更改为,DFKai-SB :对英文字母字体更改为,Times New Roman Sub AutoClose() Selection.WholeStor ...
- window.addEventListener绑定事件记得删除
在做postMessage通信时,window.addEventListener绑定的事件记得要remove掉 就和setTime一样,不然占用内存资源