一.关于方法:
1).方法与方法是平级关系,不能嵌套使用
2).如果方法的返回值类型不是void,必须renturn一个值,并且该值的类型与返回值类型对应
3).定义的方法可以没有形式参数
二.数组
* 动态初始化 数据类型[] 数组名 = new 数据类型[数组长度];//给定数组长度,但是没有直接给值
* 静态初始化 数据类型[] 数组名 = {数组元素1,数组元素2,数组元素3};//创建数组的时候,直接给里面的位置进行赋值
eg:
String[] str = {1,"hello",2.3};--->这种写法是错误的,在编译阶段直接报错,因为数组只能存储同种数据类型
三.JavaSE核心:
1).面向对象
2).集合
3).IO
一.面向对象(重点!!!)
1.面向对象思想概述
吃煎饼果子
* 面向过程:买油,面,葱花,薄脆,把油热一下,面摊上,快干的时候,撒上葱花,放上薄脆,包起来,切断,吃
* 面向对象:找一个煎饼摊,付钱,吃
面向对象思想特点:
1).将我们从执行者变成了指挥者
2).将复杂的事情简单化
面向对象特征:
1).封装
2).继承
3).多态
2.类与对象
* 学习编程的目的是为了将我们现实生活中的事物用代码描述出来
1).如何描述现实世界事物
属性 该事物的描述信息(名词)
行为 该事物能够做什么(动词)
如:我们如何描述人?
属性:身高,年龄,性别
行为:学习,玩耍
2).如何在代码中描述现实世界事物
成员变量:就是属性,和以前定义变量是一样的,只不过位置发生了变化,在类中方法外
成员方法:就是行为,和以前定义方法是一样的,只不过没有static关键字(static后面会讲解)
3).区分成员变量和局部变量
成员变量:类中,方法外
局部变量:方法声明上或者方法中
4).类与对象
* 类:是一类事物的统称
* 对象:指具体的某一个个体
类:
人:属性:姓名,年龄--->成员变量
行为:睡觉 --->成员方法
对象:
周立标:周立标,18
趴着睡
3.定义一个学生类
* 定义的成员变量(属性)不需要进行赋值
* 定义的成员方法(行为)没有static修饰
4.使用学生类
1).类需要通过创建对象来使用
类名 对象名 = new 类名();
对象名就是一个合法的标识符,那方法名如何规范命名呢???
* 如果是一个单词,全部字母小写
* 如果是多个单词,从第二个单词开始首字母大写
2).使用成员变量
对象名.成员变量
3).使用成员方法
对象名.方法名()
5.对象的内存图解
1).一个对象的内存图解
2).两个对象的内存图解
6.成员变量和局部变量的区别
1).定义的位置不同:
* 成员变量:在类中方法外
* 局部变量:在方法中
2).在内存中的位置不同:
* 成员变量:属于对象,对象在堆内存
* 局部变量:属于方法,方法在栈内存
3).生命周期不同
* 成员变量:成员变量随着对象的创建而创建,随着对象的消失而消失
* 局部变量:局部变量随着方法的调用而存在,随着方法的弹栈而消失
4).初始化值不同
* 成员变量:有默认初始化值
* 局部变量:没有默认初始化值,在使用之前必须赋值
7.方法的形式参数是类名的时候如何调用
public static void get() {}//没有参数---->get();
public static void get(int i) {}//参数为基本数据类型---->get(5);
public static void get(int[] arr) {}//参数为引用数据类型:数组---->int[] a = {1};get(a);
public void get(Student s) {}//参数为引用数据类型:类---->Student ss = new Student();get(ss);-->Student s = ss
**如何调用这些方法呢,要什么传什么
**总结:当一个方法的形式参数是一个类类型(引用数据类型)的时候,你需要传递的实际上是该类的一个对象--->传的是地址值
8.匿名对象
1).什么是匿名对象
没有名字的对象
2).应用场景
a:调用方法,仅仅只调用一次的时候
注意:调用多次的时候,不适合,匿名对象调用完毕就是垃圾,可以被垃圾回收器回收
b:匿名对象可以作为实际参数传递 |
|