复习{
1.两个数组合并
2.二分法 查找数组中元素
数组必须是有序的;
int[] arr= {1,2,3,4,5,6};
int low = 0; //数组的起始下标
int high = arr.length - 1;
int key = 1;
int middle = 0; 中间元素的下标
while(low<=high){
middle = (low + high)/2;
if(arr[middle] < key){
low = middle + 1;
}else if(arr[middle] > key){
high = middle - 1;
}else{
break;
}
}
if(low <= high){
System.out.println(middle);
} else{
System.out.println(-1);
}
--------------------------------------------------
Oop: Object-Oriented Program 面向对象编程
对象 以---的方式
在生活中是如何解决问题的?
以面向过程的思维方式解决问题:
例如:...
面向对象的思想? 什么是面向对象?
我们在程序中要以面向对象的思维方式解决问题,
例如:当我们遇到一个问题的时候,先不考虑如何解决问题,
现将问题域中的 对象 找到 (定义类),在设计类的 功能或属性
最终归 进行 调用 并执行
类和对象的关系?
类是 对象的 概念 、 抽象 、 模板
对象 是类的 一 个 具体实例
是先有 类 , 然后 根据类 来 构建 对象;
1.类的定义:
语法结构: public class Person{ 类名 首字母大写
}
2.对象的创建:
语法结构: 类名 变量名 = new 类名(); new这个单词在java中 是在堆内存开辟空间
Hero hero = new Hero(); 引用
System.out.println(hero);
com.oracle.test.Person@12db2342
3.类的组成部分:
1.属性 : 成员属性 ,
public 数据类型 变量名;
Hero hero = new Hero();
//当这个类 通过 javac 编译成 class ,java class ---> 将这个类的
结构加载到 jvm 中, 他会自动初始化成员变量
public class Hero{
public String name = "张三";
int age;
}
System.out.println(hero.name);
System.out.println(hero.age);
2.行为 , 功能, (函数 , 方法)
1)无返回值 无参数
public void eat(){
//方法体
}
2)无返回值 有参数
public void eat(String food){
}
3)有返回值 无参数
public String eat(){
return "面包";
}
4)有返回值 有参数
public String eat(int money){
return "花了"+money+"元买了面包";
}
======================================================
类的组成部分: 5
1.成员属性
2.方法 , 函数
3.构造器:
构造器:
构造函数, 构造方法
语法结构:
pubilc 类名(参数列表){
//方法体
}
构造方法是不是方法?
是方法, 但是 是 特殊方法, 没有返回值
构造方法的作用是什么?
1、规范对象的创建
2、 给成员属性赋值
我们在创建类时,没有手动 创建构造方法, jvm虚拟机 会默认
给我们一个无参数的构造方法 ,供你使用
方法的重载:
在同一个类中,方法名相同,参数列表不同, 与返回值无关
这种现象 被称为 方法的重载 (构造方法, 普通方法)
不同: 参数顺序, 类型, 个数 的不同
java中 给 属性赋值:
1. = 等号赋值
2.构造方法赋值
类中有两种方法:
1.普通方法: 这个类的功能;
2.构造方法: 给这个类创建对象, 给属性赋值
方法的相互调用:
1.普通法的相互调用:
在代码的任何地方 调用对方的 方法名(); 即可
2.构造方法的相互调用:
必须在方法体 的第一行, 用this(); 表示
---------------------------------------------------
类的 组成部分:
1.成员属性
2.普通方法
3.构造方法
4.构造块儿, 游离块儿
5.静态块儿 : static
游离块儿:
语法结构: { }
游离块 永远都比 构造方法 优先执行,
一个类中可以有多个 游离块儿 , 他们会根据 类中的顺序 依次执行
静态块儿: 作用大
语法结构:
static{
}
静态块儿 永远比游离块儿 优先执行
static: 可以修饰 属性, 可以修饰普通方法, 不能修饰 构造方法
还可以修饰类 (内部类 一个类 包含了一类 )
例如 :
public class Cat{
//内部类
static class SmallCat{
作用: 为了 更好的封装
}
}
作用:
1)static可以修饰属性, 通过static修饰的属性,被修饰的属性
是静态属性, 可以通过类名.属性名 调用,而且 只被加载一次;
2)static可以修饰普通方法, 被static修饰的方法是 ,静态方法
可以通过类名.方法名(); 调用执行
3)static 还可以修饰类 (内部类 : 就是一个类 包含了一类 )
例如 :
public class Cat{
//内部类
static class SmallCat{
作用: 为了 更好的封装
}
}
***静态方法中 必须加载 静态资源(静态属性和 静态方法)
非静态方法 可以加载 静态资源
======================================================
封装: 面向对象的 4大特性之一: 一种思想
封装 , 继承 ,多态 , 抽象
封装 : 目的 就是为了 隐藏 程序的细节, 提高 程序的 安全性 , 提高
程序的复用性;
1.冒泡排序
int[] array = {4,3,1,2,3,3,5,6};
for
定义一个工具:
可以帮助我们 完成一些 特定的功能
把 n 个方法 放到类中 ,类封装了 多个方法
你把代码的细节 放到方法中, 方法将功能封装了
什么情况下会用到 属性的访问器: 类的成员属性 被私有化了
属性的访问器: setter , getter方法