1、理解面向对象
1.1、面向过程
面向过程是一种编程思想,他的开发方法是以事件为中心。分析解决问题需要的步骤,然后一步一步的实现。(小程序适合使用)
1.2、面向对象(Object—Oriented)
面向对象是一种以对象为中心的编程思想。万物皆对象。这种编程思想更符合人的思维模式。(适合中大型项目,更易于维护)
1.3、对象的基本构成
对象同时具备静态的属性和动态的方法。比如人的身高、体重就是属性,人能吃饭、能拉翔就是人的方法。
1.4、Java中的类
把抽象出来的类型用Java表达出来就是类class(c小写);把某些具有相同属性的对象抽象的表达为类。(比如猫和狗都是动物)
类是对某一类事物的抽象,他包含这类对象的属性和方法。实例化一个类,就可以获得该类的一个实例(即对象)。
1.5、Java中的对象
对象是类的一个实例,也称实例对象。。
类可以理解为一个模板,一个对象模型。每次实例都是根据类进行创建。所有实例出来的的对象都具有这个类的属性和方法。
2、如何使用Java类
2.1、new关键字
类名 变量名 = new 类名();
2.2、使用对象中的属性和方法
属性: 变量名.属性1=对应类型的值;
没有返回值的方法: 变量名.方法1;
有返回值的方法: 返回值类型 返回值变量名 = 变量名.方法名(参数) 参数可不写
3、Java类的基本构成
一个完整的Java类通常由六部分构成。
包定义语句 package 包名
import语句 需要导哪些包
类定义{ ——类定义以及{}不可省略,其他按照实际
成员变量
成员方法
构造方法
}
3.1、包(package)
什么是包,物理上是一个文件夹(目录),逻辑上是分类概念。
包是类、接口或其他包的集合,宝对类进行有效的管理机制。
特点:层次结构清晰、可避免命名冲突、便于控制访问权限。
3.2、import语句
为了使用某一个包的成员,我们需要明确在Java中导入这个包。使用import来完成次语句。
Java编译器默认认为所有程序都引入的jdk多的java.lang.*包中的所有类。其中常用的(System、String、Object、Math),因此这些类可以不用显示引入,而其他的包则需要显示引入。
3.3、权限修饰符
Java语言允许对类中的属性和方法进行访问控制。
共四个等级,private(私有)<default(无修饰符)<protected(不常用)<public(公共)
private只有类内部可以访问,default允许同一个包内(包含类本身)访问,protected允许包内和包外的子类访问。public允许任何位置访问。
变量和方法可以用任意修饰符访问。类可以使用公共或无修饰符访问。
3.4、类定义
Java程序的基本单位是类,建立类之后可以用来建立所需要的对象。Java把每一个可执行成分都变成类。
基本定义形式:
<权限修饰符> [一般修饰符] class类名 [extends父类][implements接口]{
成员变量;成员方法;构造方法;
}
3.5、成员变量
成员变量是指类的一些属性定义。(静态)
基本定义形式:
<权限修饰符> [一般修饰符] 类型 <属性名称> =[初始值]
权限修饰符可以为四种,从大到小分别是public(公共的),protected(受保护的),default(默认,无修饰符),private(私有)。
修饰符,如static,final等
属性名称,任何合法字符
初始值,赋值给属性初始值,如果不设置会自动初始化,默认0/null;
3.6、构造方法
构造方法是类中特殊的方法,他的作用是创建并初始化成员变量。在创建类的时候自动调用。
Java中的构造方法必须与该类用相同的名字,并且没有返回值类型(包括没有void)。另外,构造方法一般都用public来说明,这样才能保证程序在任何地方创建都可以初始化。
3.7、方法
方法就是对象所具有的动态功能。
基本格式:
<权限修饰符> [修饰符] <返回值类型> [方法名称]<形式参数列表>[throws异常列表]{
方法体
}
权限修饰符:public(公共),protected(受保护),default(不写),private(私有)。
修饰符:static,final,abstract,synchronized
返回值类型:如果没有返回值,必须声明为空(void)。如果有返回值,则按照实际的返回值类型进行赋值。
方法名称:合法名称(驼峰命名,从第二个单词开始首字母大写。)
throws异常列表:子句导致一个运行时异常,被报告到调用的方法中。
方法体:需要执行的语句。
形参与实参:
形参就是形式参数,在定义方法的时候使用的参数,用来表示方法接收的参数类型,在调用方法是传入。
实际参数就是方法被调用时传递给方法的实际参数。
形式参数和实际参数的类型必须一致或满隐含转换规则。
参数可变的方法:
从jdk5.0开始,提空了参数可变的方法。
5.0之前只能传数组,int sum(Integer[] numbers){}
5.0开始开始可以写成 int sum (Integer... numbers)