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("哈哈");
}
}
浙公网安备 33010602011771号