对象,类,方法和实例变量
一个 Java 程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作。下面简要介绍下类、对象、方法和实例变量的概念。
类
类是一个模板,它描述一类对象的行为和状态。
对象
对象是类的一个实例,有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。
比如就人类而言,男人和女人各为一类,而具体的每个人为对象;
方法就是行为,一个类可以有很多方法。逻辑运算、数据修改以及所有动作都是在方法中完成的。
方法是和类相联系的,还是就人类而言,方法更像是人类的行为,如吃,喝,玩,睡这一系列行为,并且一类里可以有多个方法;
实例变量
每个对象都有独特的实例变量,对象的状态由这些实例变量的值决定。
Hello World
public class HelloWorld//建议这里的名字和文件名字相同,尤其是大小写
{
public static void main(String[] str)
{
System.out.print("Hello World");
}
}
其中在public static void main这一行中
public为访问修饰符;
static为关键字;
void为返回类型;
main为方法名
String为变量类型;
str为创建的数组的名字;
先大致地讲讲,后面有的部分再慢慢补;
访问修饰符
Java面向对象的基本思想之一是封装细节并且公开接口。
Java语言采用访问控制修饰符来控制类及类的方法和变量的访问权限,从而向使用者暴露接口,但隐藏实现细节。
Java的访问权限大致上分为五类
当前类;
同一包内;
子孙级(同一包);
子孙级(不同包);
其他包;
"包"这个定义着实有点后期,所以后面再讲,权限大部分都是沿以上顺序由近到远;
而访问控制分为四种级别:
public
所有类都可见与访问;
使用对象:类,接口,方法,变量;
protected
对同一包的类与所有的子集皆可见;
但是在一定情况下,可以允许子孙级(不同包)访问;
使用对象:对象,变量;不再修饰 类 ,准确来说是外部类
default
默认,可以什么也不写;
只在同一包中可见,不使用任何修饰符;
使用对象:类,接口,方法,变量;
private
只允许当前类,即同一类访问;
使用对象:变量,方法;不再修饰 类 ,准确来说是外部类;
关键字
可以这么理解,就是大部分联机游戏里,如果你想要的角色名字被人注册了,那你就不能注册这个名字了;
这就是关键字,系统已经存储过这个名字,并且有一定的作用;
比如if和else就是因果,你就不能把这些关键字安在你创建的变量或函数上;
对于多少个关键字及其作用之后再讲;
返回类型
稍微有点C/C++基础的都知道,函数,或者应该被叫做方法,前面有一个类型来定义该方法返回了什么;
比如void sort就是sort这个函数什么都不返回,如果函数中没有return之类的关键字或过程,几乎可以直接无缝衔接到原来的主程序里;
而int div就是div这个函数,返回一个整数,主函数中需要一个变量来记录该数字;
char kmp就是kmp这一函数返回一个char类型字符,主函数也需要一个变量来记录该char字符;
方法名
给方法取个名字,记住不要冲突关键词,并且符合取名规则即可;
String[] str
有的人说这里是args,怎么变成str了;
这就是开一个String的数组,并且命名为str,只要符合命名规则,想叫啥就叫啥;
基本语法
大小写敏感
Java 是大小写敏感的,这就意味着标识符 Hello 与 hello 是不同的。
类名
对于所有的类来说,类名的首字母应该大写。如果类名由若干单词组成,那么每个单词的首字母应该大写,例如 MyFirstJavaClass 。
方法名
所有的方法名都应该以小写字母开头。如果方法名含有若干单词,则后面的每个单词首字母大写。
源文件名
源文件名必须和类名相同。当保存文件的时候,你应该使用类名作为文件名保存(切记 Java 是大小写敏感的),文件名的后缀为 .java。(如果文件名和类名不相同则会导致编译错误)
主方法入口
所有的 Java 程序由 public static void main(String[] args) 方法开始执行。
命名法
所有的标识符都应该以字母(A-Z 或者 a-z),美元符($)、或者下划线(_)组成;
变量
Java 中主要有如下几种类型的变量
局部变量
类变量(静态变量)
成员变量(非静态变量)
后面再细讲
数组
数组是储存在堆上的对象,可以保存多个同类型变量;
目前可以理解为创造一个柜子(数组),柜子有很多抽屉(数组的每个空间),抽屉里可以放东西(元素);
继承
在 Java 中,一个类可以由其他类派生。如果你要创建一个类,而且已经存在一个类具有你所需要的属性或方法,那么你可以将新创建的类继承该类。
利用继承的方法,可以重用已存在类的方法和属性,而不用重写这些代码。被继承的类称为超类(super class),派生类称为子类(sub class)。
比较后期;
接口
在 Java 中,接口可理解为对象间相互通信的协议。接口在继承中扮演着很重要的角色。
接口只定义派生要用到的方法,但是方法的具体实现完全取决于派生类。
还是比较后期;