day7_自我总结

一、回顾

1.循环对数组进行操作
  A.循环遍历的是数组的下标
  B.数组索引范围 0  - (数组长度-1)
  C.赋值与取值的语法  赋值 数组名称[索引] =值  取值: 数组名称[索引]
2.求数组中最大值
  A.定义一个变量来记录最大值
  B.使用循环依次数组中元素进行比较
  C.如果数组中值大于最大值变量 就给最大值变量重新进行赋值
3.在指定区间内查找执行元素索引值
   方法的参数: 数组   元素   开始索引  结束索引
   方法体: 使用循环来一一进行查找
4.数组中置换
   A.使用循环来依次交换值
   B.交换的次数 数组的长度/2
   C.定义一个中间变量 来进行值的交换
5.插入值
   A.查找到元素的索引位置
   B.元素进行移动
   C.进行值的插入
6.冒泡排序
    规则: 前后两个元素进行比较  如果前面的元素比后面的元素大  进行值的交换
    排序: 从小到大进行排序 或者按照升序进行排列
    嵌套for循环  外层循环控制比较的轮数  i  内层循环控制比较次数 数组长度-1-i
7.订餐系统
   

二、idea

2.1 介绍

2.2 模块开发

2.3 idea中创建模块化项目

2.4 debug调试

2.5 快捷键

2、psvm 提示主方法
3、sout 提示打印语句
4、ctrl+alt+l 格式化代码
5、ctrl+d 快速向下复制当前行
6、ctrl+y 删除当前行
7、alt+enter 智能提示
8、alt+insert 快速生成代码
9、ctrl+alt+t 快速包裹一段代码
10、ctrl+alt+v 快速添加引用
11、ctrl和+或者- 收缩或者展开单个方法
12、ctrl+Alt+shift+u 查看类关系图
13、ctrl+alt+m 选中的代码转换为方法

三、面向对象思想

3.1 面向对象概念

1.面向对象思想 是java中一种编程思想  在java中万物皆对象 所有的事物都可以使用对象来进行描述
2.面向对象的三大特征: 封装 继承  多态 .....

例子:需求:定义一个数组int [ ] nums ={20,30,40} ==>打印格式 [20,30,40]

面向过程

public class Test07 {
    public static void main(String[] args) {
        //定义一个数组
        int[] nums = {10, 20, 30, 40};
        //定义一个字符来进行拼接
        String s = "";
        //使用循环获取数组中元素
        for (int i = 0; i < nums.length; i++) {
            //第一个元素需要拼接左中括号
            if (i == 0) {
                s += "[" + nums[i] + ",";
            } else if (i == nums.length - 1) {
                s += nums[i] + "]";
            } else {
                s += nums[i] + ",";
            }
        }
        System.out.println(s);
    }
}

面向对象

import java.util.Arrays;

public class Test08 {
    public static void main(String[] args) {
        //定义一个数组
        int [] arrays ={10,20,30};
        //借助于jdk提供的对象
        System.out.println(Arrays.toString(arrays));
    }
}

3.2 类的概念

1.概念:类是一组属性与行为的集合
2.属性:用于来描述事物的特征  一般是形容词或者是名词
3.行为:用于来描述事物执行的动作  一般就是动词
4.例子:
    狗类: 属性: 名字  品种  性别  年龄   行为: 叫  吃  睡 ...
    人类: 属性: 名字  性别  年龄  身高   行为: 吃  睡  玩  思考...
    手机类:属性: 品牌 型号  价格  颜色   行为:打电话 玩游戏 发短信...

3.3 对象的概念

1.概念: 对象是类的具体表现  对象必须有类的属性与行为
2.例子:
   狗类   ===> 多多
   人类   ===> 吴荣俊
3.类与对象的关系
   类是对象的抽象  对象是类的具体表现

3.4 定义类

0.自我认识:
  类 ———— 大写
对象 ———— new
方法 ———— 存在于类中
构造方法 ———— 存在于类中,只能执行一次(还是创建的时候 默认执行的)
(实例化的时候将类构造成一个对象,同时调用里面的构造方法) 

1.语法:
   访问修饰符  class 类名 {
      //属性 ==>成员变量
      //行为 ==成员方法
      
   }
2.例子: 狗类
  public  class Dog {
     //属性
     String name;
     String kind;
     int age;
    //方法
     public void  eat(String foot){
          
     }
     public  void  sleep(){
     
     }
  }
3.说明
   A.成员变量  只是位置发生了改变  定义在类中 方法外
   B.成员方法  定义在类中 只需要将static去除

代码

public class Dog {
    //成员变量
    String name;
    String kind;
    int age;

    //吃
    public  void  eat(String food) {
        System.out.println("狗正在吃"+food +"......");
    }

    //睡
    public  void sleep(){
        System.out.println("狗正在睡觉.........");
    }
}

3.5 实例化对象

1.语法: 类名 对象名 = new  类名();
2.注意点:
   A.前后的类名必须是一致
   B.对象名可以任意的定义  通俗易懂
   C.后面的类名需要加上一个小括号
3.例子:
   Dog d  = new Dog();
4.访问成员变量
    成员变量赋值 语法: 对象名.属性名=值  例如 d.name ="多多"
    成员变量取值 语法: 对象名.属性名  例如 d.name 
5.访问成员方法
    语法: 对象名.方法名(参数列表)  例如 d.eat("狗粮");

代码

public class Test09 {
    public static void main(String[] args) {
        //实例化狗的对象
        Dog d = new Dog();
        //给成员变量赋值
        d.name="多多";
        d.kind="泰迪";
        d.age=2;
        //取值
        System.out.println(d.name);
        System.out.println(d.kind);
        System.out.println(d.age);
        //访问成员方法
        d.eat("狗粮");
        d.sleep();
    }
}

3.6 成员变量默认值

整数类型 0
基本数据类型 小数类型 0.0
字符类型 '\u0000'(空格)
引用数据类型 布尔类型 false
字符串类型 null

3.7 案例

step01 需求 定义一个手机类 给成员变量赋值 并且调用其方法

step02 分析

属性 成员变量:  品牌  型号  价格 颜色      
行为 成员方法: 发送短信  打电话....

step03 代码-定义手机类

public class Phone {
    String  brand; //品牌
    String  type;  //型号
    String color; //颜色
    double price; //价格

    //打电话
    public  void  call(String who){
        System.out.println("正在给"+who +"谈一个小目标的项目");
    }
    public  void send(){
        System.out.println("正在做舔狗.....给小姐姐发短信");
    }
}

step3 代码-测试类

public class Test10 {
    public static void main(String[] args) {
        //实例化对象
        Phone huawei = new Phone();
        //给属性赋值
        huawei.brand="华为";
        huawei.type="p60";
        huawei.color="中国红";
        huawei.price=9999;
        //获取成员变量值
        System.out.println(huawei.brand);
        System.out.println(huawei.type);
        System.out.println(huawei.color);
        System.out.println(huawei.price);
        //调用方法
        huawei.call("王健林");
        huawei.send();
    }
}

四、 内存图

4.1 一个对象创建的内存图

4.1 两个引用指向同一个堆地址内存图

4.3 方法的参数是引用数据类型内存图

五、 匿名对象

1.匿名对象:没有名称的对象  例如:new Phone()   数组:new int[]{20,30,40}
2.使用场景:
   A.使用匿名对象调用方法 有且仅调用一次的时候
   B.使用匿名对象作为方法的实际参数
   C.使用匿名对象作为方法的返回值
3.注意点:
    A.匿名对象可以给成员变量赋值 但是没有实际意义
    B.匿名对象优先被gc(垃圾回收器进行回收)  节省内存空间

step01 代码-定义Person类

public class Person {
    String name;
    int age;

    public void showInfo() {
        System.out.println("吴荣俊偷偷去约会!不带上同桌");
    }
}

step02 代码-定义测试类

public class Test13 {
    public static void main(String[] args) {
        //只调用一次
        // new  Person().showInfo();
        //作为方法的实际参数
        show(new Person());
        //通过匿名对象给成员变量赋值
        new Person().name = "千锋刘亦菲";
        System.out.println(new Person().name);
    }

    //作为方法的返回值
    public static Person getP() {
        return new Person();
    }

    public static void show(Person p) {
        System.out.println("哈哈");
    }
}
posted @ 2022-07-20 21:08  真lyz  阅读(35)  评论(0)    收藏  举报