复习:
数组
创建的时候长度固定:因为要连续的内存空间
不能改变长度:
只能通过赋值一个新的数组
System.arraycopy(五); //目标数组;从哪个位置;新数组;从哪个位置;长度
Array.sort(arr);
Array.toString(arr);
int[] arr = new int [10];
int[] arr = {12,24};
int[] arr = new int []{24,235,252};
随机数:
一:java.lang.Math.random();//java.lang下的类不需要导入包
double d = Matn.random();//从0.0到1.0
double d = Matn.random()*99+1;//从1到100取值 :Math.random()*(n-m)+m;
二:java.util.Random;
Random r = new Random();
r.nextInt(10);//从0到10取值
package com.briup.ch5;
import java.util.Random;
public class Test1{
public static void main(String[] args){
//产生四位随机数
String code = "";
//创建随机数对象
Random r = new Random();
for(int i =0;i<10;i++){
//获得0到30之间的随机数
// System.out.println(r.nextInt(30));
code += r.nextInt(10);
if(i==3){
break;
}
/* double d = Math.random();
System.out.println(d);
*/
}
System.out.println(code);
}
}
可变参数:等价于数组
可以接收任意多个数据
只能位于方法参数的最后一个
可变参数的使用等价于数组
public void show(int... id){
id[0];
id.length;
}
public void eat(int... id,int age){//这样不可以,id会把所有参数接收
}
show();
show(1,2,3);
package com.briup.ch5;
import java.util.*;
public class Test2{
public static void main(String[] args){
Test2 t = new Test2();
t.show(1);
t.show(1,2,3);
}
public void show(int... id){
for(int i =0;i<id.length;i++){
System.out.println(id[i]);
}
System.out.println(Arrays.toString(id));
}
}
面向对象编程:
前导:
面向对象(Object-Orientation,简称OO)是一种系统建模技术/编程思想
OO:面向对象,是一套集编程思想,方法,原则,模式,解决方案等为一体的编程模式。
OO的思想贯穿于整个软件开发的过程,比如需求分析,设计,编程,测试,升级等.
知识点速记:面向对象就是以类和类之间的关系去考虑 需求,编程...等。
1,oop解释:按照面向对象的思想进行编程
2,明确的需求:
2.1:问题域:当前的业务作用范围。
问题域 : 校内
需求 : 点名
2.2:核心任务:最主要的功能
3,面向对象编程的特点:抽象,封装,继承,多态
第二部分:面向对象编程的四个基础特点之抽象
1,抽象:忽略掉一个对象或实体的细节
而只关注其本质特征的过程。
瞎想的过程.
哪吒{
武器 : 乾坤圈,混天绫,风火轮,枪
状态 : 三头6手
体质 : 莲藕
大闹东海
}
【抽象是为了得到 类(模板) 】
2,抽象需要解决的两个事情:
2.1:抽象出Xxx的属性
2.2:抽象出Xxx的行为
哪吒{
武器 : 乾坤圈,混天绫,风火轮,枪
状态 : 三头6手
体质 : 莲藕
大闹东海
}
class 哪吒{
String w1 = "乾坤圈";
String w2 = "混天绫";
String w3 = "风火轮";
String w4 = "枪";
String body = "莲藕";
String status = "正常"/"三头6手";
public String 大闹东海(){
return "龙筋";
}
}
需要结合问题域进行抽象
eg:
孙悟空:
没有爹妈
衣服: 虎皮裙/好衣服
头盔 : 紫金冠
打如来
打黑熊精
打白骨精
打野猪精
打蜘蛛精
class 孙悟空{
boolean isOnly = "true";
String yif;
String headk;
public String 打(String name){
return "";
}
}
3,抽象完成以后得到的就是 类-->所有Xxx的模板
第三部分:类和对象的概念
1,类
1.1:万物皆可以抽象:
问题领域中的实体和概念都可以抽象得到对应的类。
1.2:类是啥:类是java中一种复杂的数据类型
1.3:类的作用:
1.3.1:描述数据 : 属性
1.3.2:操作数据 : 方法
知识点速记:类使用成员变量描述数据(没有具体的值),使用方法操作数据。
1.4:类是元数据:描述数据的数据,因为数据在面向对象领域里以对象的形式存在,所以类是对象共有属性和方法的抽象描述。
2,对象
具有类中所有的属性和方法,
属性值可以不同,
方法实现可以不完全一样,
具有相同属性和行为的一组个体-->对象
2.1:类是模板,对象是该模板产生的一个个体。
2.2:个体的作用:
这个个体,可以【调用】自己的【方法】操作数据。
这个个体,可以给成员变量【赋值和取值】。
特殊对象 : 只用来存储有关联关系的数据
javaBean 没有操作数据的方法
特殊对象 : 只用来操作数据的
service 只有方法;
特殊对象 : 用来和数据库交互
dao
小节:对象是在程序中可以使用的单位,
对象中又包含很多数据,
所以,java程序的运行是各种对象的相互交互作用。
第四部分:类中属性和方法的定义和使用
1,属性
1.1:在类中声明属性:
语法: 修饰符 类型 变量名
修饰符 类型 变量名 = 值;
eg: private String name = "小明";
public int age;
protected boolean isonline;
public 公有的,
都可以访问
protected 保护 : 只有子类能访问
private 私有的: 只有当前类内部能使用
不写 (friendly)默认的: 只能在当前包中访问
注:类的成员变量可以不给初始值,会有默认值。
2,方法
2.1:声明:类中方法的声明:
语法: 修饰符 返回值类型 方法名(参数列表)
[throws 异常类型]{
//代码体
//如果返回值类型不为void那么必须有
return 返回值类型的数据;
}
参数列表:用来声明变量,
声明的变量可以在当前方法中使用
[没有赋值]
2.2:使用:类中方法的使用(调用).
语法:对象.方法名(参数列表对应类型的值);
eg:
类 对象名 = new 类();
对象名.show(10);//①
那么执行①的时候 就会去执行show方法中的代码。
调用方法时候传入的10 是实际参数。
注意:对象调用方法,只有这个方法是属于该对象才能被调用到。
知识点速记:方法声明参数的是形式参数
调用方法时传入的参数是实际参数。
参数传递:
参数传递的是当前值的地址
堆:对象实例 new Student(把对象的所有属性与方法代码都写入)
栈:基本数据类型;对象的引用;被执行的方法 10;Student stu ,int i; stu.show();
方法区:class 引用,类信息,方法信息,静态资源 类加载时将类信息(名称,方法名)写入(不会写具体代码),将static修饰的资源写入
运行时常量:常量+"字符串" :相当于就是字符串
代码在内存运行机制:
1.javac
2.java 类名 --> 触发类加载
3.类信息放到方法区 类加载结束
4.自动调用main方法开始执行代码
5.main方法入栈,开始执行
6.创建对象,调用show方法
7.show方法入栈
8.执行show
9.show执行完毕 出栈
10.main执行完毕 出栈
11.jvm释放所有内存