生如逆旅,一苇以航!
文章目录
面向过程&&面向对象
-
属性+方法 -->类
-
面向过程
- 步骤清晰简单,第一步…第二步…
- 面向过程适合处理一些简单的问题
-
面向对象
- 物以类聚,分类的模式思维,思考问题时首先思考问题会进行哪些分类,然后对这些分类进行单独的思考。最后,才对某个分类下的细节进行面过程的思考
- 面向对象适合解决复杂的问题,适合处理多人协作的问题
-
对于描述复杂的事务,为了从宏观上把握,从整体上理性分析,我们需要使用面向对象的思路去分析整个系统。但是具体到微观的操作,我们仍然需要使用面向过程的思路去处理。
面向对象(Object-Oriented Programming OOP)
-
面向对象的实质,以类的方式组织代码,以对象的形式(封装)数据
-
三大特征(先大概了解即可)
- 封装
- 假如你有一万元,你需要把他们放在一个盒子里,同时你也需要留一个小口在你需要的时候去拿
- 继承
- “儿子继承了父亲的特性”
- 多态
- 每个人学习java,最终学的深度是各不相同的
- 封装
-
从认识的理论来说,先有对象后有类,对象是具体的事物,类时是抽象的
- 人是对象,有的人当老师,有的人当医生…
-
从代码运行的角度来说,先有类后有对象
- 如果你没有"对象",直接 new 一个就有"对象"了
方法的调用
package com.operator;
import com.operator.com.operator.Student;
public class Demo1 {
public static void main(String[] args) {
Student.say();
}
}
//*********************************************************
public class Student {
public static void say(){
//因为含有static 所以是静态方法
//如果是静态方法,在某个类(Demo1)直接用类名(Student).方法即可
System.out.println("学生说话了");
}
}
同一个类中方法之间的相互调用实例
public class Demo1 {
public static void main(String[] args) {}
//在同一个类中,两个普通非静态的方法之间可以相互调用,不会报错
public void a(){
b();
}
public void b(){
;
}
//在同一个类中,两个普通静态的方法之间可以相互调用,不会报错
public static void c(){
d();
}
public static void d(){}
//static是和类一起加载的
public static void e(){
f();
//所以一个已经存在的去调用一个还没有存在的所以报错
}
//不含static的普通方法是在类实例化之后才存在的
public void f(){}
}
值传递&&引用传递
- 一个类中只能有一个public class 但可以有多个 class
- 引用传递: 传递的是对象 本质还是值传递
//值传递
public class Demo1 {
public static void main(String[] args) {
int a=1;
System.out.println(a);//1
change(a);
System.out.println(a);//1
}
private static void change(int a){
a=10;
}
}
//引用传递
public class Demo1 {
public static void main(String[] args) {
Person person=new Person();
System.out.println(person.name);//null
change(person);
System.out.println(person.name);//Cx_330
}
private static void change(Person person){
person.name="Cx_330";
}
}
class Person{
String name;
}
类
-
一般在一个项目中我们只需要定义一个 main方法在一个类中即可,通过调用的方法实现其它类中某些功能实现
-
任何类都只由两部分组成 属性(字段) 方法
-
类是抽象的,需要实例化
-
类实例化之后会返回一个自己的对象
//假设Student是一个类 Student student=new Student(); //那么进行完这一行代码之后: student对象是Student类的一个实例化
构造器
- 与类名相同,没有返回值的public方法
- 构造器的作用
- 实例化初始值
- 使用new关键字,本质是在调用构造器
- 用来初始化值
- 实例化初始值
- 一旦定义了有参构造,无参就必须显示定义
- 在idea中有一个快捷键 Alt+insert 会自动生成构造器