参考书<java语言编程基础教程> 宋振会著
java与C++的不同:
- java是纯面向对象的,java的每个语句都写在类內;而C++的main方法和全局变量是在类外的
- java与C++比多了两个基本数据类型,byte和boolean(C++中是bool)
- java没有C++中的指针和结构struct
- java数据类型大小固定,与平台无关,而C++与具体平台有关
java的基本数据类型:
-
- boolean 1bit
- byte 8bit 1byte
- char 16bit 2byte
- short 16bit 2byte
- int 32bit 4byte
- float 32bit 4byte
- long 64bit 8byte
- double 64bit 8byte
C++基本数据类型:
C++在32位os下, bool 1byte, char 1byte, short 2byte, int 4 byte, float 4byte, long 4byte, double 8 byte.
Name | Description | Size* | Range* |
---|---|---|---|
char |
Character or small integer. | 1byte | signed: -128 to 127 unsigned: 0 to 255 |
short int (short ) |
Short Integer. | 2bytes | signed: -32768 to 32767 unsigned: 0 to 65535 |
int |
Integer. | 4bytes | signed: -2147483648 to 2147483647 unsigned: 0 to 4294967295 |
long int (long ) |
Long integer. | 4bytes | signed: -2147483648 to 2147483647 unsigned: 0 to 4294967295 |
bool |
Boolean value. It can take one of two values: true or false. | 1byte | true or false |
float |
Floating point number. | 4bytes | +/- 3.4e +/- 38 (~7 digits) |
double |
Double precision floating point number. | 8bytes | +/- 1.7e +/- 308 (~15 digits) |
long double |
Long double precision floating point number. | 8bytes | +/- 1.7e +/- 308 (~15 digits) |
wchar_t |
Wide character. | 2 or 4 bytes | 1 wide character |
C++为了兼容C,允许在类外有独立的函数,所以C++实际上是在面向过程的基础上,增加了面向对象的机制
关于继承,java不允许多重继承,但可以通过接口implements来实现
java继承的关键字是extend,而C++没有继承关键字,只有 ':' 加 public,private,protect这个来修饰继承的等级属性
java:
public class A extend B{
}
c++:
public class A: public B{
};
java构造函数
构造函数(方法)注意几个特点:
1.函数名与类名相同
2.没返回、没有方法类型、也不能定义成void
3.程序自动调用、一个类可以定义多个构造函数,构造函数可以重载、以参数的个数,类型,或排列顺序区分
使用:
public class A {
public String name;
//构造函数,与类同名,无返回类型,去掉public则访问权限default
public A (String name){
this.name=name;
}
}
java有四种访问权限 public , protected, private, default(无关键字,缺省)
default是包内的类可以访问,包级访问权限
C++中使用include包含库文件,如#include<vector>
在java中,使用import 包名.* ; //导入这个包的所有类
导入具体某个类: import 包名.类名;
定义某个类属于某个包
在.class文件的头部, 写上package 包名;
C++中抽象类关键字virtual, java中抽象类和方法关键字abstruct