1、JAVA的类:你可以把类看成是蓝图,设计图,对一类事物或者意图的某些方面的描述。比如你要描述一种汽车,当然汽车有太多的属性了,但你在意的恐怕只有几种而已。
在处理复杂事物的时候,用到的一种基本手段就是抽象。抽象的目的就是区别事物之间的本质和不同,面向对象编程(OOP)的实质就是利用类和对象来建立抽象模型。
类表示了对象的类别,是创建对象的蓝本。建立一个事物的抽象模型,本质上就是表达该事物的性质和行为。使用类来建立抽象模型,是通过在类中定义变量和方法来实现的。
类中定义的属性是一种可存储值的变量,该变量代表着事物的具体性质。类的对象所具有的行是由定义的方法来实现的。
JAVA的成员:类中定义的变量和方法被称为类的成员。
怎么定义一个类,就是使用class关键字来定义,例如:
public class GoodMan{
private String name;
public GoodMan(String name){
this.name = name;
}
public String getName(){
return this.name;
}
}
上面这个类是很基本的类的定义,有一个私有成员变量name, 有一个带参数的构造方法,有一个get方法,当然,你还可以设置其他的成员变量和成员方法
说白了类就是一个复杂的数据类型,和int、double一个意思。
JAVA的对象:是类的实例。对象在构造时以类为蓝本,创建对象的过程叫做实例化。对象是类所表示的抽象事物的具体实例。例如前面所讲述的Gun类,可以根据Gun类创建一个ak47的对象,
即Gun的具体实现。
例如,下面创建了一个类:
public class Gun {
// 定义枪的口径
public Double caliber;
// 定义枪的长度
public Double length;
// 定义枪的类型
public int gun_type;
// 构造方法
public Gun() {
}
// 带参数的构造方法
public Gun(String name) {
}
// 开火的方法
public void fire() {
System.out.println(gun_type +" is fireing");
}
// 维护的方法
public Boolean maintenance() {
return true;
}
}
ak47是根据Gun类创建的一个对象,在Java程序中,可以使用如下代码创建一个Gun对象。
……
public static void main(String[] args) {
//建立一个Gun类对象,即Gun类的实例ak47
Gun ak47=new Gun();
//定义ak47的口径
ak47.caliber=7.6;
//定义ak47的长度
ak47.length=57.8;
//定义ak47的类型
ak47.gun_type=“AK47”;
//调用fire()方法
ak47.fire();
}
……
运行结果:
AK47 is firing
说明: 在Java编程中,我们常常用System.out.println来输出字符串,类似于c语言的printk/printf打印一样。
什么叫new一个对象?
如果你创建的对象,需要自己去读取操作数据,就需要通过new的方式,可以进行初始化,如果是接收其他地方的传值,可以不通过new的方式,创建对象。
例如以下就是new了一个对象:
String str = new String(“Test”),是开辟内存放入了对象,并把它的引用赋给str。
java中new一个对象具体是怎么样的?
Test a = new Test(); //这句话就是new了一次,创建了一个Test对象,创建了一个Test实例.
a是内存地址,是用HashCode算法实现的,具体说是这个对象地址的引用.
PS:通过这个对象地址,可以对这个new出来的对象进行操作.
JAVA的变量:就是可以改变的量。在JAVA中我们通过三个元素来描述变量:变量类型,变量名以及变量值。
例子:int 表示能存储整数类型的数据类型。 int a;表示你定义了一个存储整数的变量。a就是你的变量名;int a = 10;表示你给这个变量赋的值为10;
Java中变量的使用规则:
(1)Java 中的变量需要先声明后使用;
(2)变量使用时,可以声明变量的同时进行初始化,也可以先声明后赋值;
String love=“imooc”;或者String love;love=“I love imooc”;
(3)变量中每次只能赋一个值,但可以修改多次;
(4)main 方法中定义的变量必须先赋值,然后才能输出;
(5)虽然语法中没有提示错误,但在实际开发中,变量名不建议使用中文,容易产生安全隐患,譬如后期跨平台操作时出现乱码等等
java基本变量八大基本类型,
byte:单字节
int:4字节
shortint:2字节
long:8字节
char:2字节,没有负,可表示中文。
boolean:单字节,按javac编译工具后理解是整形01.
float:4字节
double:8字节
JAVA的方法:所谓方法就是用来解决一类问题的代码的有序组合,是一个功能模块。类似于c语言的函数
注意:在很多语言里面有函数的定义,而在Java中,函数被称为方法。
一般情况下,定义一个方法包含以下语法:
修饰符 返回值类型 方法名(参数类型 参数名){
… 方法体 …
return 返回值;
}
/*
- 1:什么叫方法?
- 方法其实就是一个{},给该{}起名字,来去执行{}中的内容—>方法:调用独立的代码块
- 2:如何定义呢?(暂时把static关键字带上:面向对象的时候讲)
- main()
- public static void main(String[] args){}:没有具体的返回值的写法
- 有返回类型的方法的定义的格式
- 权限修饰符 静态修饰符static 返回值类型 方法名(形式参数:(数据类型 变量名)){
- return 返回具体的结果;
- }
- 详细解释:
- 权限修饰符:public:公共的,公开的 (面向对象:private),public表示该方法可以被其他任何代码调用
- 静态修饰符:static
- 返回值类型:暂时使用基本数据类型(int类型,float…) 还可以引用类型(面向对象部分)
- 方法名:返回标识符的规则:起名字:见名知意
- 形式参数:组成:数据类型(基本数据类型) 变量名
- return:带回一个结果
- 需求:求两个数据之和
*有具体返回值类型的方法调用:
- 1)单独调用:没有任何意义,只是调用了,没有具体的结果出现!没有输出语句
- 2)输出调用:没有错,但是不能针对具体结果进行下一步操作!
- 3)赋值调用:推荐使用赋值调用
- */
public class FunctionDemo {
public static void main(String[] args) {
//定义两个变量
int a = 10 ;
int b = 20 ;
//调用求和功能去实现
//1)单独调用
// sum(a,b) ;
//2)输出调用
// System.out.println(sum(a, b));
//3)赋值调用
int result = sum(a, b) ;
System.out.println(“result:”+result);
}
/*
*写方法的注意事项:
*明个明确:
- 1)明确返回值类型 :int类型
- 2)明确参数个数以及参数类型:int类型,2个参数
- */
public static int sum(int a,int b){
//必须有具体的返回值
//定义变量来进行接收
// int c = a + b ;
// return c ;
return a + b ;
}
}
那么public static void main(String[] args) 是什么意思?
这是java程序的入口地址,java虚拟机运行程序的时候首先找的就是main方法.跟C语言里面的main()函数的作用是一样的.只有有main()方法的java程序才能够被java虚拟机欲行,可理解为规定的格式
对于里面的参数及修饰符
public:表示的这个程序的访问权限,表示的是任何的场合可以被引用,这样java虚拟机就可以找到main()方法,从而来运行javac程序
static:表明方法是静态的,不依赖类的对象的,是属于类的,在类加载的时候main()方法也随着加载到内存中去
void:main()方法是不需要返回值的
main:约定俗成,规定的
String[] args:从控制台接收参数