1.数据的表示和存储模式
> 基本类型 (面向过程的语言, 处处皆函数!)
Int, byte, long, …..
Float, double….
boolean
char,String
> 数组 (基本数据类型的集群) (指针)
> 过度类型
没有一种数据类型能够用来说明一个人?
软件语言设计者发现使用任何一种基本类型都无法说明现实生活的具体某一事物,最多只能说明其中的一个特征。那么,如果要说明一个拥有众多特征的事物,可能需要有多个基本类型来配合完成。
多种不同的基本类型捆绑在一起用来表示一个事物的各个方面的特征,
struct book{
double bookWeight;
string bookName;
float bookPrice;
boolean ….
} b;
book b;
b. bookName=”J2EE学习”;
> 复杂类型 (class 类型)
class Cat{
Double weight;
String name;
Int age;
Void run() { }
Void sound() { }
…..
}
Cat c;
Class是包含了方法的超级结构体。
创建结构体变量(开辟内存空间)
book b;
b.bookName…
创建类变量以及创建对象 (开辟空间)
Cat c=new Cat();
这里是c是指针,指向在内存中的Cat对象。
new Cat()是申请内存空间,创建对象。
2. 类和对象
声明结构体 à 结构体变量
声明类 à 对象
万事万物皆对象,世界是由对象构成的,每个对象都有特征和行为,对象组合之后可以形成新的对象。
类是模具,而对象是由模具创建出来的实物
现实生活:
模具 à 实物
(制作模具是重要而且复杂的,同时也是抽象的)
程序中:(程序开发的目标就是为了再造世界)
类 à 对象
(创建类是复杂的,抽象的工作)
如何创建类?
类是模具,有了类,就可以通过这个模具生成出来很多对象。
3.类的构建
a. 属性 (property) [成员]
b. 方法 (method) [动作]
属性是主人,方法为属性服务,是仆人。
c. 类的构建粒度
满足程序的设计需要即可,未涉及的属性和方法可不加入类的设计。
不同的应用领域会有不同的抽象视角。
Cat c=new Cat();
C是一个指针,c的数据类型是Cat型,说明c可以指向任何以Cat模具创造出来的对象。
4.Random类
本类可以完成随机数的生成工作。
用法:
Random r=new Random();
System.out.println(r.nextInt());
System.out.println(r.nextInt(100));
System.out.println(1+r.nextInt(36));
System.out.println(r.nextFloat());
System.out.println(r.nextDouble());
System.out.println(r.nextBoolean());
5. 数组的使用
int[] a=new int[3];
int[][] b=new int[2][3];
在java中,数组也是对象,必须通过new来创建和申请空间。
数组因为是对象,所以也不能直接访问,必须通过一个指针(引用变量)来指向,不是所有的引用变量都可以指向数组对象,必须类型匹配,int[] 是引用变量a的数据类型,说明a是一个可以指向内存中的一维数组对象的引用变量(指针).
昨天的收获:一堆关于字符串的操作,以前自己手写的算法,在这边可以直接使用了
Random随机数的使用
Random r = new Random() ;
for(int i =0;i<20;i++)
System.out.print(Math.abs(r.nextInt(30))) ;
生成20个0到30的数字,会出现重复 ;
switch ()//跟C++一样
没了..