根据AtGuiGu视频教程整理如下:
1.面向对象 理解学习三条主线:
 * 1.Java类及类的成员:属性、方法、构造器;代码块、内部类
 * 2.面向对象的大特征:封装性、继承性、多态性、(抽象性)
 * 3.其它关键字:this、super、static、final、abstract、interface、package、import等
2.面向对象与面向过程(理解)
1.面向过程:强调的是功能行为,以函数为最小单位,考虑怎么做。
2.面向对象:强调具备了功能的对象,以类/对象为最小单位,考虑谁来做。

3.项目开发流程:
  1、项目启动:
成立项目组;预期目标;项目周期;组成员沟通机制
  2、需求调研:创建调研计划、协调调研时间;收集客户资料,获取客户需求,编写需求文档
  3、系统设计/详细设计:基础平台和应用模块。
       1)、选择基础平台,无论是采用第三方平台还是自行开发平台,都需要深入了解,查看是否符合要求。
       2)、应用模块设计(针对业务流程)3)、中间件的采用或自行开发,需要深入了解。4)、用户界面的设计
  4、程序开发:开发任务计划表、开发计划日程表
       1)、优先编写测试用例 2)、按照编码规范编写代码  3)、按照文档注释规范注释 4)、版本管理系统。
  5、测试:需求、设计、开发、测试互动,性能功能测试。
  6、试用、实施、维护

4.面向对象中两个重要的概念:
类:对一类事物的描述,是抽象的、概念上的定义
对象:是实际存在的该类事物的每个个体,因而也称为实例(instance)
  >面向对象程序设计的重点是类的设计
  >设计类,就是设计类的成员。
二者的关系:对象是类的实例,类是对象的模板

5.面向对象思想实现规则
 *  1.创建类,设计类的成员
 *  2.创建类的对象
 *  3.通过“对象.属性”或“对象.方法”调用对象的结构

补充:几个概念的使用说明
 *  属性 = 成员变量 = field = 域、字段
 *  方法 = 成员方法 = 函数 = method
 *  创建类的对象 = 类的实例化 

6.对象的创建与对象的内存解析
典型代码:
Person p1 = new Person();
Person p2 = new Person();
Person p3 = p1;//没有新创建一个对象,共用一个堆空间中的对象实体。
说明:
如果创建了一个类的多个对象,则每个对象都独立的拥有一套类的属性。(非static的)
意味着:如果我们修改一个对象的属性a,则不影响另外一个对象属性a的值。

对象内存解析:

对象数组内存解析:



7.匿名对象:我们创建的对象,没显式的赋给一个变量名。即为匿名对象
特点:匿名对象只能调用一次。
举例:
    new Phone().sendEmail();
        new Phone().playGame();
        
        new Phone().price = 1999;
        new Phone().showPrice();//0.0
应用场景:
PhoneMall mall = new PhoneMall();

//匿名对象的使用
mall.show(new Phone());
其中,
class PhoneMall{
    public void show(Phone phone){
        phone.sendEmail();
        phone.playGame();
    }
    
}

TIPS:重点看下方法的东西

1,重载(overload)参数列表不同。

2,如果变量是基本数据类型,此时赋值的是变量所保存的数据值。
      如果变量是引用数据类型,此时赋值的是变量所保存的数据的地址值。

哈哈,加一道脑筋急转弯面试题吧:


首先可能觉得有点**,a*10;b*20;哈哈 那就掉坑里了。Too young
 

public static void method(int a , int b){
    a *= 10;
    b *= 20;
    syso(a);
    syso(b);
    SYStem.exit(0);
}