[零基础学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封装 ...
随机推荐
- background-position 详解
一.语法 语法:background-position:x, y; 定义:背景图片相对容器原点的起始位置: 取值: 关键字:top | center | bottom | left | cen ...
- XRP共识算法
目录 共识协议属性 账本历史 信任的验证 共识协议属性 XRP Ledger使用的共识协议不同于之前的任何区块链.该协议称为XRP Ledger共识协议,旨在具有以下重要属性: 使用XRP Ledge ...
- springBoot启动时让方法自动执行的几种实现方式
一.开篇名义 在springBoot中我们有时候需要让项目在启动时提前加载相应的数据或者执行某个方法,那么实现提前加载的方式有哪些呢?接下来我带领大家逐个解答 1.实现ServletContextAw ...
- IOS仿微信朋友圈好友展示
前几天小伙伴要帮他做一个群聊功能,里面有好友列表,要求和微信的差不多(见下图),让小伙伴自己实现了下,他将CollectionView放在tableView的tableHead中,可是当添加好友或删除 ...
- Restful的优势
1. 轻量,直接基于http,不在需要任何别的诸如消息协议.get/post/put/delete为CRUD操作2. 面向资源,一目了然,具有自解释性.3. 数据描述简单,一般以xml,json做数据 ...
- 三、hive JavaAPI示例
在上文中https://www.cnblogs.com/lay2017/p/9973370.html 我们通过hive shell去操作hive,本文我们以Java代码的示例去对hive执行加载数据和 ...
- 基于Spark GraphX计算二度关系
关系计算问题描述 二度关系是指用户与用户通过关注者为桥梁发现到的关注者之间的关系.目前微博通过二度关系实现了潜在用户的推荐.用户的一度关系包含了关注.好友两种类型,二度关系则得到关注的关注.关注的好友 ...
- Servlet学习系列1
一.引言: 1.什么是Servlet? JavaWeb 开发规范中的一个组成部分. 服务器端的一段小程序(代码) 2.什么是服务器?→ 安装了服务器软件的计算机. 硬件:电脑 --->高性能 ...
- Tomcat的下载安装及使用
macOS Sierra Version 10.13.2 环境下Tomcat的下载与安装以及InterlliJ IDEA 2017.2 环境下配置Tomcat 与创建Web项目 一.Tomcat的下载 ...
- Python Django ORM基本增删改查
工程下的urls.py中增加如下: from cmdb import views as cmdb #要把你要操作的项目import进来 urlpatterns = [ url(r'orm', cmdb ...