Java笔记-基础篇(2)

第二章 数组

一)数组
1)数组的概念:数组是一个变量,他可以存放多个值,这些值具有相同的数据类型,通过数组名+下标的方式获取到数组中的某个值。

2)数组的定义:
a)数据类型[] 数组名=new 数据类型[大小];//声明并分配空间
b)数据类型[] 数组名={值对表};//声明,分配空间并赋值
c)数据类型[] 数组名=new 数据类型[]{值列表};//声明,分配空间并赋值(值列表不能隔行书写)
eg:int []a;
//a=new int[3];
//a={3,4,5};
正确写法:a=new int[]{3,4,5};
d)数据类型[] 数组名;//声明一个数组

注意:
1.数组一经定义,就不能更改(数组是定长的)
2.仅仅声明的数组,无法使用
3.分配空间却没有赋值的数组,系统会给一个默认值,原始类型0,引用类型null
4.输出数组,显示内存地址(除char[])
5.中括号[]可以放到数组名之前和之后,一般推荐放在数组名之前
6.看代码注释

3)一维数组:
1.定义
2.使用:数组名+下标
3.获取数组的长度:数组名.length获取
4.如何循环给数组赋值,如何循环显示数组的内容
5.求出数组的最大值和最小值,涉及到了两个数之间的交换
6.对数组进行排序,冒泡排序法
7.数组位移
(有两个随机长度,随机内容的整型数组,将这两个数组中的质数取出来存放在新数组C中,要求C数组降序排列,输出显示c数组)
4)数组的运算
5)常见数组的方法
a):Arrays.sort(数组);//升序排列
b);String str= Array.toString(数组);//获取当前数组字符串表现形式
c):新数组=Array.copyOf(老数组,长度);//以老数组复制出新数组,新数组长度为指定长度

6)二维数组://二维数组里边的一维数组长度可以不一致
1.定义:是一个变量,里面有多个值,里边存放的值也是一个数组,也可以说成是里边存放多个一维数组
2.语法:等同于一维数组,但有两个中括号

7)多维数组:是一个变量,里边存放的是上一维数组,维度是几,就有几个中括号
8)对象数组:自定义的数组,对象数组有自定义的属性,可以模拟多维数组
9)数组扩容:通过一个类模拟一个数组效果
10)数组位移:

第三章 类和对象

一.类
1)定义:
[public] class 类名{
属性
方法
构造器
}
注意:
1.一个java文件,至少有一个类,但是只能有一个类为public,而且这个类的名称和文件名相同
2.类名命名规则等同于变量
3.类名命名规范:首字母大写,名词,驼峰
2)站位

二.属性:对类的描述,描述了类是什么//一个变量,是对类的静态描述,它是什么
1.定义:[作用域] 数据类型 属性名 [=值]; 成员变量
2.成员变量:它是一个变量,这个变量隶属于这个类,所以这个变量是当前类的一个成员
3.局部变量:定义在程序体中的一个变量,它的作用域(范围)仅在当前程序体

三.方法:描述类能做什么//是对类的动态描述,它能做什么
1定义:
(作用域) 返回类型 方法名(形式参数){
方法体;
}
a.作用域可省略
b.作用域, 返回类型 ,方法名,形式列表是方法的定义部分
c.方法体是方法的实现部分
2方法名:
a.规则:等同于变量
b.规范:首字母小写,动词,驼峰
3返回类型
a.无返回类型:void修饰
b.有返回类型:

调用方法后得到相应类型的结果;
一个方法只能返回一个结果;
在方法体中使用return 关键字进行返回,并且return必须在方法体的最后一行;
返回类型与返回值必须一致;
调用带返回结果的的方法,可以直接赋予一个相应类型的变量,所以带返回结果的方法可以看成一个‘值’

4形参列表:当方法被调用时,方法调用者需要传递的参数,形参注重的是数据类型,也就是它规定了调用者传递参数时必须传递什么数据类型的值
a.无参数列表调用方法时不需要传递参数
b.有参数列表调用方法时需要传递参数
c.形参注重的是类型
(this.变量名)(变量名重复时使用)

四.对象:类是对象的抽象,对象是类的具体实现
1.类可以看成是一个类型/分类/模板
2.对象是具体上实际存在的内容,它是对类的一种诠释一种表现
3.属性和方法试试类的两种描述方式,也就是说在一个对象中应该具有该类的属性和方法
4.类关注于属性和方法的定义
5.对象关注于属性和方法的实现
6.如何产生一个类别的对象:new
//对象名.属性名
7.方法的调用:
a.当前类中方的法相互调用:直接使用方法名
b.其他类中的方法调用本类方法,需要产生对象,通过对象调用
c.递归:当前方法调用当前方法
练习
1.通过递归99乘法表
2.递归斐波那契数
3.递归1-100之间质数和

五.构造器(构造方法)
1.作用:初始化对象,给当前产生的的对象属性赋值
2.分类:

1)隐式构造器:每一个类都至少拥有一个构造器,当我们未书写构造器时,系统会为当前指定一个默认的构造器,会为我们当前对象的属性(未赋值)赋值,原始类型赋0,引用类型赋null
2)显示构造器:
作用域 类名(形参列表){
构造体;
}

注意事项
1.当new时调用指定构造器
2.一个类可以书写多个构造器,但产生对象时只能通过一个构造器来产生指定对象
3.当显示构造器被书写后,隐式构造器就不能被使用,系统会调用隐式构造器给未赋值的属性赋值
4.隐式构造器是无参数的构造器
5.一个类中书写的多个构造器根据形参来进行划分
a.无参数显示构造器:
b.有参数显示构造器

六.成员变量/局部变量
1.成员变量定义在类中,是类的一个组成部分,而局部变量定义在方法体中
2.作用域不同:成员变量作用于当前类中,甚至于可以通过对象在其他类中使用,而局部变量只能在当前程序体中使用
3.生命周期:成员变量依附于对象存在,也就是当对象被产生时,成员变量被创建了,当对象销毁时,成员变量时效,而局部变量存活当前程序体
4.赋值:成员变量可以定义时赋值,也可以通过构造器赋值,甚至通过方法赋值,而局部变量只能在当前程序体中赋值
5.使用:成员变量我们未赋值时也能使用(隐式构造器),但是局部变量未赋值不能使用

七.特殊方法
public String toString(){
}
当输出对象时,默认调用这个方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值