1.了解面向对象和面向过程的区别
编程思路
面向过程:按照功能的先后顺序,以此实现对应的方法
面向对象:分析整个项目参与的实体,找到有共同点的实体,将实体抽象为类,用类来封装属性和方法。
执行方式
面向过程:按照功能的先后顺序来执行
面向对象:有触发性,调用就执行,不调用不执行
2.类与对象
类:某一类事物共有属性和行为的高度抽象→概念(不存在)
对象:某个类的具体存在→实体(实际存在)
·创建一个类
在一个创建的module下创建一个package,在package下创建一个Student类
public:公共的、公开的(外部可以访问,当类被public修饰,这个类必须与文件名相同
· private:私有的(外部不可以访问)
·class:关键词-表示一个类
·Student:类名(首字母必须大写),同一个文件里面可以申明多个类,只能有一个public类
·为了阅读性和更好的管理,通常一个文件里面只申明一个类, 如果有多个类通常会以内部类的形式存在
/**
* @Description 学生信息
* @Author 空添
*/
public class Student {
public class Teacher{
}
}
·对象的创建(对象的创建=类的实例化)
· new创建一个对象,Student() 这个类提供的构造方法,每个类的构造方法都不同,要适用对应的构造方法。
package com.example.lib;
import com.example.lib.day1.Student;
public class MyClass {
Student xw = new Student();
}
在电脑中相关内存分配
·堆区:new 动态分配内存 malloc calloc realloc→必须手动释放
·栈:系统分配的内存 系统自动回收
·在程序结束后,栈里的xw自动释放掉内存,原理上0x200需要手动释放,但java有自动回收机制,不需要手动释放
指针和引用的关系
· 指针变量保存的是地址,引用和指针是同一个东西,java为了使编程更加轻松,就对指针进行封装→引用,不需要看到各种*
· 在java编程时,尽量不要使用指针的方法去理解,用对象来代替
package com.example.lib;
import com.example.lib.day1.Student;
public class MyClass {
Student xw = new Student();
Student gblw = xw;//引用
}
·属性和方法
属性(成员变量):记录一些数据,例如新建一个Card属性(money,pwd)
此时已经新建了一个age的属性,无法访问是由于:新建的属性默认使用protected修饰符修饰即在同一个包里可以访问对象的属性,外部无法直接访问,而public表示包内包外都可以访问,所以在新建属性时应该在前方添加public
·属性的声明一般位于类的最上部分,属性的访问使用zs.name的形式
public class Student {
public String name;//记录学生的名字
public int age;//记录学生的年龄
}
属性除了public和proteect两个修饰符外,还有private这个修饰符,只有对象内部才可以使用,即使在同一包内也不可以访问