昨日回顾:
1)一位数组的应用
数组的遍历:在控制台将元素一一输出
数组的属性:length 获取数组中的长度
获取数组中的最大值最小值:
取数组中的第一个值为最大值
从第二个元素开始遍历并做对比
数组的逆序
for(int statrt = 0,end = arr.length;start <= end;start++,end--){
int temp = arr [start];
int [start] = arr[end];
int[end] = temp;
}
基本查找法 ,从头查到尾
2)二维数组
基本遍历:
for(int x = 0;x<arr.length;x++){
for(int y = 0;y<arr[x].length;y++){
System.out.print(arr[x][y]);
}
冒泡排序
今日内容:
1. 面向对象思想
2. 类与对象
3. 如何定义一个类(对应现实)
4. 类在内存中的分配
引用类型:类,接口,数组
5. 成员变量,局部变量两者的区别
6. 引用类型(类作为形式参数,如何传递)
7. 什么是匿名对象
8. 封装 以及private关键字
面向对象
Java中万物皆对象.
面向对象特点:
- 更符合生活中的思想行为习惯
- 从执行者变成指挥者
- 指挥一个具体的事物完成事情(可将复杂的事情简单化)
对象的开发原则:
不断的创建对象,使用对象,指挥对象做事情
面向对象的三大特征
- 封装: encapsulation
- 继承: inheritance
- 多态: polymorphism
类与对象的关系
public static void main(String[] args){
}
class Mobil_Phone{
//成员变量
String Brand;
String XingHao;
String colour;
int JiaGe;
int MEID;
int IMEI1;
//成员方法
public void Call_Up(){
System.out.println("打电话");
}
public void Send_Messages(){
System.out.println("发短信");
}
public void PlayGames(){
System.out.println("玩手机游戏");
}
public void Social_Contact (){
System.out.println("社交");
}
}
类: 描述一组事物的属性和行为的集合;
对象: 描述事物最具体的东西
eg.
学生事物- - - - - - - >学生类class Student()-- - - - -
属性 成员变量
行为 成员方法
定义好一个类, 需要使用这个类时 - - - - - - - - -> 创建一个具体的对象
创建对象的格式:
类名 对象名 = new 类名
访问成员变量:
对象名.成员变量
调用成员方法
对象名.成员方法();
成员变量和局部变量的区别
- 在类中的位置不同
成员变量 类中方法外
局部变量 方法内或者方法声明上 - 在内存中的位置不同
成员变量 堆内存
局部变量 栈内存 - 生命周期不同
成员变量 随着对象的存在而存在,随着对象的消失而消失
局部变量 随着方法的调用而存在,随着方法的调用完毕而消失 - 初始化值不同
成员变量 有默认的初始化值
局部变量 没有默认的初始化值,必须先定义,赋值,才能使用。
形式参数的问题
1)基本类型做形参
方法中传递的是具体的值
2)引用类型做形参
方法中传递的是引用对象的地址
匿名对象
匿名对象:
就是没有名字的对象,是对象的一种简化表示形式
使用情况
匿名对象的两种使用情况,对象调用方法仅仅一次的时候作为实际参数传递
封装
封装概述
是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。
封装的好处:
- 隐藏实现细节,提供公共的访问方式
- 提高了代码的复用性
- 提高安全性
封装的封装原则:
- 将不需要对外提供的内容都隐藏起来。
- 把属性隐藏,提供公共方法对其访问。
private(私有的)
private关键字:
是一个权限修饰符。
可以修饰成员(成员变量和成员方法)
被private修饰的成员只在本类中才能访问。
private最常见的应用:
把成员变量用private修饰
提供对应的getXxx()/setXxx()方法
书写一个标准的案例
构造方法
构造方法作用概述
给对象的数据进行初始化
构造方法格式
- 方法名与类名相同
- 没有返回值类型,连void都没有
- 没有具体的返回值
构造方法注意事项
- 如果你不提供构造方法,系统会给出默认构造方法
- 如果你提供了构造方法,系统将不再提供
- 构造方法也是可以重载的
类的标准写法
类
成员变量
构造方法
无参构造方法
带参构造方法
成员方法
getXxx()
setXxx()
给成员变量赋值的方式
无参构造方法+setXxx()
带参构造方法
手机事物
属性:品牌,颜色,价格,内存
行为:打电话,拍照,聊天
class MobilPhone{
private String PinPai;
private String Colour;
private int HowMuch;
private String Neicun;
//设置PinPai
public void setName(String n) {
name = n ;
}
//得到PinPai
public String getName(){
return name ;
}
//设置Colour
public void setName(String n) {
name = n ;
}
//得到Colour
public String getName(){
return name ;
}
//设置HowMuch
public void setName(String n) {
name = n ;
}
//得到HowMuch
public String getName(){
return name ;
}//设置Neicun
public void setName(String n) {
name = n ;
}
//得到Neicun
public String getName(){
return name ;
}
public void show(){
System.out.println("品牌是:"+PinPai+",颜色是:"+Colour+",价格是: "+HowMuch+",内有有:"+Neicun) ;
}
public void Call(){
Systrm.out.pringln("打电话 ");
}
public void TakePhoto(){
Systrm.out.pringln("拍照片吃饭");
}
public void LiaoTian(){
Systrm.out.pringln("聊天打屁");
}
}
class test{
public static void main(String[] args){
MobilPhone s = new MobilPhone;
s. PinPai = "小米";
s. Colour= "白色";
s.HowMuch = 1998;
s. Neicun= "8G";
s.show();
}
}
类的初始化过程
Student s = new Student();在内存中做了哪些事情?
加载Student.class文件进内存
在栈内存为s开辟空间
在堆内存为学生对象开辟空间
对学生对象的成员变量进行默认初始化
对学生对象的成员变量进行显示初始化
通过构造方法对学生对象的成员变量赋值
学生对象初始化完毕,把对象地址赋值给s变量