|---软件开发的思想:
-
常见开发思想:
- 面向对象: 以对象为中心. 实质是分析需求中涉及哪些现实对象,然后将这些现实对象抽象到java程序中,接着模拟现实对象,操作对象实现需求
- 面向过程: 以过程为中心. 实质是分析需求需要哪些步骤,然后通过方法/方法实现这些步骤,最后按照顺序逐次执行这些步骤.
注:java语言属于面向对象的语言.
2.面向对象分析的步骤:
第一步,确定对象和类。类是多个对象的共同属性和方法集合的描述,它包括如何在一个类中建立一个新对象的描述。
第二步,确定结构(structure)。结构是指问题域的复杂性和连接关系。类成员结构反映了泛化-特化关系,整体-部分结构反映整体和局部之间的关系。
第三步,确定主题(subject)。主题是指事物的总体概貌和总体分析模型。
第四步,确定属性(attribute)。属性就是数据元素,可用来描述对象或分类结构的实例
第五步,确定方法(method)。方法是在收到消息后必须进行的一些处理方法:方法要在图中定义,并在对象的存储中指定。
3.java是面向对象的设计语言,现实中的哪些对象可以作为java对象:
例:人 车
|----如何将现实对象抽到java系统中?
- 抽象出类,封装属性,方法
|----java文件的编写: 必须以类为基础
-
类的格式:
public class 类名{
}
说明: 类名必须以字母开头,开头不能是数字,类名首字母大写
|----属性的编写格式: 属性的编写实质就是全局变量的编写.
-
格式: private(修饰符) String(属性类型) className(属性名);
说明:属性名首字母一般小写,不能以数字开头,可以使用驼峰命名法
|-----类与对象的关系:
- 类对象的抽象,对象是类的实例
|----如何模拟对象:
-
格式:
Student(学生类) stu(学生类对象)=new Student() stu.xxx() (xxx方法名);
|----操作对象:
- 操作属性: 对象.属性
- 操作方法: 对象.方法
|----方法的分类:
- 静态方法,普通方法
|----方法的格式:
- 访问修饰符 返回值类型 方法名称(){
}
格式:public void test(){
}
|---参数:
-
格式:public void test(String name){}
访问修饰符 返回值类型 方法名称(数据类型 参数名称){
}
2.使用原则:传入的参数类型与形参一致
3.参数的分类:形参和实参
形参: 在方法中声明的参数
实参: 调用方法是传入的参数
|---返回值:
-
返回值分类:
- 基本类型
- 引用类型
-
格式:
访问修饰符 返回值类型 方法名称(数据类型 参数名称){
return 返回值
}
|--方法的调用方式:
- 直接调用:
- 对象调用:
- 类名调用:
|---调用方式总结: 同类/异类 静态/非静态
- 调用同一个类中的静态方法:
- 调用同一个类中的非静态方法:
- 调用异类中的静态方法:
- 调用异类中的非静态方法:
|---关键字static
- 问题: static修饰的代码,属于具体某个对象的吗?不是,属于类
- 问题:static修饰的方法属于具体某个对象的吗?不属于
- 问题: 如何理解main方法只能调用被static修饰的属性和方法?
-
注:对于一般的非static成员变量或方法,需要有一个对象的实例才能调用,所以要先生成对象的实例,他们才会实际的分配内存空间。而对于static的对象或方法,在程序载入时便已经分配了内存空间,他只和特定的类想关联,无需实例化。
-
- 问题: 一个非静态的方法,是否可以直接调用同一个类中的静态方法?
- 对于静态方法,其他的静态或非静态方法都可以直接调用它。
- 对于非静态方法,其他的非静态方法是可以直接调用它的。但是其他静态方法只有通过对象才能调用它。静态方法不能被非静态方法覆盖。
|---构造方法:创建java对象.
-
格式:
类名 类名匿名=new 类名();
|---构造方法的调用
- 普通方法调用构造方法: 不可以
- 构造方法调用普通方法: 可以
- 构造方法调用构造方法: 不能直接相互调用,必须使用this关键字调用
|---有参构造方法和无参构造方法的区别:
- 1.两个都是用于创建对象,在这两个方法没有区别
- 2.有参构造方法不仅创建了对象,同时有初始化了对象的属性,相对无参构造方法更加快捷
|---this关键字:
- this中文意思为: 这, 这里,当前
- this可以表示当前类的类名,也可以表示当前类对象的引用.
this([参值1,参值2,...]):
this.属性/方法名():