个人笔记,仅供参考
1、面向对象和面向过程
简单来说,面向过程就是让你自己做一个每一步,面向对象就是使用有相应功能的工具来完成。
例如:按特定格式打印一个数组
面向过程:
int[] array = {10,20,30,40,50};
//打印格式为:[10,20,30,40,50]
System.out.print("[");
for (int i = 0; i < array.length; i++) {
if(i == array.length - 1){//最后一个数
System.out.println(array[i] + "]");
}
else
{//不是最后一个数
System.out.print(array[i] + ",");
}
}
面向对象:
System.out.println(Arrays.toString(array));
注:IDEA会自动导入Arrays类
这两者结果没有区别,主要区别是编程的思想。在这里,帮我们打印数组的Arrays类就被称为对象
面向对象的三个特征:
封装性
继承性
多态性
2、类和对象
什么是类:类是一组相关属性和行为的集合,可以看成是一类事物的模板
属性就是该事物的状态信息,行为是该事物能做什么
什么是对象:对象是类的具体化实例,即类是对象的模板,对象是类的实体
3、类的定义
由属性和行为组成,以下为例子:
学生类示范
定义一个学生类,有姓名和年龄两个属性,吃法睡觉学习三个行为。
对应到java类中:
成员变量(属性):
String name;
int age;
成员方法(行为):成员方法没有static关键字
public void eat(){}
public void sleep(){}
public void study(){}
实际示范:
public class student {
//成员变量
//成员变量直接定义在类中,在方法外
String name;
int age;
//成员方法
//成员方法没有static关键字
public void eat(){
System.out.println("吃饭");
}
public void sleep(){
System.out.println("睡觉");
}
public void study(){
System.out.println("学习");
}
}
4、对象的创建及其使用
通常情况,一个类不能直接使用,要创建一个对象才能使用
创建步骤:
- 导包,指出需要使用的类在什么位置,同一个包下可以不写导包
- 创建,格式:类名 对象名 = new 类名();
- 使用,使用成员变量:对象名.成员变量,使用成员方法:对象名.成员方法名(参数)
public class Demo4 {
public static void main(String[] args) {
//创建对象
student stu = new student();
//打印成员变量
System.out.println(stu.name);
//使用成员方法
stu.eat();
//重新赋值成员变量
stu.name = "Alan";
System.out.println(stu.name);
}
}
5、对象可以当做参数传递给方法
public static void method(Phone parse){}
这个方法的参数是一个Phone类的对象
同样的,对象也可以当返回值
6、封装性
在java当中的体现有两点:
- 方法就是一种封装
- 关键字private也是一种封装
封装就是将一些细节信息隐藏,对外界不可见
7、private关键字
private关键字意为私有化,可以通过该关键字将需要保护的成员变量进行修饰。
private int age;
使用该关键字后,在本类当中仍然可以随意访问,但超出本类范围之外就不能直接访问了,如果要在类外对该成员变量赋值,需要通过类内的get/set
方法。注意:方法名必须叫get xxx或set xxx
public void setAge(int num){
age = num;
}//用来修改age,无返回值,有参数
public int getAge(){
return age;
}//用来调用age,有返回值,无参数
可以在这两个方法内通过代码限制age的值。提高代码安全性
注意,布尔型的get方法名字应为isXXX,例如:
public boolean isMale(){
return male;
//布尔型的get方法名字是is
}
8、this关键字
当方法的局部变量和类的成员变量重名时,根据就近原则会优先使用局部变量。
如果需要访问本类当中的成员变量,需使用this关键字(方法内)
this.成员变量名
通过谁调用的方法,谁就是this
9、构造方法
专门用来创建对象的方法,当我们用关键字new创建对象时,new后面的语句就是在使用构造方法
public 类名(参数类型 参数名称){
方法体
}
注意:
- 构造方法的名称与类名必须完全一样
- 构造方法不要写返回值类型
- 构造方法不能return一个具体的返回值
- 如果没写构造方法,编译器会自动生成,没有参数,方法体什么都不做
- 构造方法也可以重载
构造方法的主要作用是,方便在创建对象是设置成员变量
10、定义一个标准的类
标准的类包含以下四部分
- 所有成员变量都使用private进行私有化
- 每一个成员变量都有一堆get/set方法
- 编写一个无参构造方法
- 编写一个全参构造方法
public class work_student {
private String name;
private int age;
public work_student() {
}
public work_student(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
以上为一个标准的类
注意:在IDEA中构造方法和get/set方法可以通过IDEA自动生成,在Code--->Generate中
网友评论