}
/**
- 函数实现
- 如果再main方法后实现,必须先声明
- @return
*/
void hello(string name) {
cout << "Hello, " + name + “!”;
}
方法Return
--------
### Java
public boolean hasItems() {
return true;
}
### C++
bool hasItems() {
return true;
}
单表达式
----
### Java
public double cube(double x) {
return x * x * x;
}
### C++
double cube(double x) {
return x * x * x;
}
类->New
------
### Java
File file = new File(“file.txt”); //对象在堆中,对象引用在栈中
### C++
class Test {
public:
void add() {
}
};
int main() {
Test test1; //栈中分配 ,由操作系统进行内存的分配和管理
Test test1; //加表示为指向Test类对像的指针变量,不加*则为Test类对像
Test *test = new Test(); //堆中分配 ,由管理者进行内存的分配和管理,用完必须delete(),否则可能造成内存泄漏
delete test;
return 0;
}
**注意:栈中内存的分配和管理由操作系统决定,而堆中内存的分配和管理由管理者决定**
类->不可被继承
--------
### Java
public final class User {
}
### C++
//C++11的新特性
class User final {
};
类->不可被继承的成员变量
-------------
### Java
class User {
private final String name;
public User(String name) {
this.name = name;
}
public String getName() {
return name;
}
}
### C++
class User {
private:
const string u_name; // const限制只能被赋值一次
public:
User(string name); // 声明
};
User::User(string name) : u_name(name){}; //实现
int main() {
User user = User(“test”);
return 0;
}
类-> 可选的构造参数
-----------
### Java
final class User {
private String name;
private String lastName;
public User(String name) {
this(name, "");
}
public User(String name, String lastName) {
this.name = name;
this.lastName = lastName;
}
// And Getters & Setters
}
### C++
class User {
private:
string u_name;
string u_last_name;
public:
User(string name,string lastName);
};
User::User(string name,string lastName = “1”) : u_name(name) ,u_last_name(lastName){};
int main() {
User user = User(“test”);
User user1 = User(“test”,“1”);
return 0;
}
抽象类
---
### Java
public abstract class Document{
public abstract int calculateSize();
}
public class Photo extends Document{
@Override
public int calculateSize() {
}
}
### C++
/**
- 抽象类
- 需要用纯虚函数
- 纯虚函数是通过在声明中使用 “= 0” 来指定
*/
class Document{
public:
virtual int calculateSize() = 0; //纯虚函数
};
class Photo : Document{
public:
int calculateSize() override{
cout << “Photo”;
return 10;
}
};
int main() {
Photo photo;
photo.calculateSize();
return 0;
}
单例
--
### Java
public class Document {
private static final Document INSTANCE = new Document();
public static Document getInstance(){
return INSTANCE;
}
}
### C++
//懒汉版
class Document {
private:
static Document *document;
private:
Document() {};
~Document() {};
Document(const Document &);
Document &operator=(const Document &);
private:
class Deletor {
public:
~Deletor() {
if(Document::document != NULL)
delete Document::document;
}
};
static Deletor deletor;
public:
static Document *getInstance() {
if (document == NULL) {
document = new Document();
}
return document;
}
};
在程序运行结束时,系统会调用静态成员deletor的析构函数,该析构函数会删除单例的唯一实例。使用这种方法释放单例对象有以下特征:
* 在单例类内部定义专有的嵌套类。
* 在单例类内定义私有的专门用于释放的静态成员。
* 利用程序在结束时析构全局变量的特性,选择最终的释放时机。
枚举类
---
### 最后
总之啊,家里没矿的同学们,如果你们想以后的日子过得好一些,多想想你们的业余时间怎么安排吧;
技术方面的提升肯定是重中之重,但是技术外的一些“软实力”也不能完全忽视,很多时候升职确实是因为你的技术足够强,但也与你的“软实力”密切相关
在这我也分享一份大佬自己收录整理的 **Android学习PDF+架构视频+面试文档+源码笔记** ,还有**高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料**这些都是我闲暇还会反复翻阅并给下属员工学习的精品资料。在脑图中,每个知识点专题都配有相对应的实战项目,可以有效的帮助大家掌握知识点。
总之也是在这里帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习
**[CodeChina开源项目:《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》](https://codechina.csdn.net/m0_60958482/android_p7)**
![](https://img-blog.csdnimg.cn/img_convert/b531917b61b3d9d8b17a781cc27e26f2.png)
![](https://img-blog.csdnimg.cn/img_convert/a38cb2da080de63903047df1e442e448.png)
料。在脑图中,每个知识点专题都配有相对应的实战项目,可以有效的帮助大家掌握知识点。
总之也是在这里帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习
**[CodeChina开源项目:《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》](https://codechina.csdn.net/m0_60958482/android_p7)**
[外链图片转存中...(img-HidJcFnZ-1630576471390)]
[外链图片转存中...(img-DLLiMPr1-1630576471393)]
**相信自己,没有做不到的,只有想不到的**