JavaSE基础四( 数组,方法,类和类的封装,封装,static类和非静态类的区别,next()和nextLine()的区别)

1 数组

1.1 数组的理解:

数组的声明定义,分配空间,初始化数组元素。
一维数组的定义方式为:
type [ ] arrayName;(类型(type)可以为任意的数据类型,数组名arrayName为一个合法的标识符,[ ]指明该变量是一个数组类型变量。)

1.2 初始化

分为静态初始化和动态初始化两种。
**静态初始化:**int[ ] intArray={1,2,3,4};//定义了一个含有4个
元素的int型数组。
**动态初始化:**用运算符new为数组分配空间,然后分配的下标值减1。
String[] stringArray = new String[3]; //定义一个String类型的数组,给数组stringArray分配3个应用stringArray[0]=new String(“how”);//初始化数组值,最大的下标值是减1

1.3 解释arr,arr[0],arr.length的含义

arr:表示的是数组名称
arr[0]:是数组的下标的值,表示的是从0开始,不是从1开始。可知索引号不是数组的长度,而是数组的长度小1.
arr.length:是指数组的长度,在使用时,就可以不用事先知道数组的大小。

1.4 二维数组的理解

二维数组的差别在于多了一个表示的行,可以表示为是一个特殊的一维数组,其中的每一个元素是一个一维数组。二维数组当中有初始化两种方式,第一种是直接为每一个一维分配空间。
int[] arr ={1,2,3,4}这个是一维数组中的一行四列。
int[][] arr1={{1},{2},{3},{4}};表示的是二维数组中的四行一列。

1.5 排序算法(冒泡)冒泡排序表示

n个数排序,需要进行n-1趟冒泡,通过两两比较,并交换的问题,当取出最大值(最小值的时候),每次的排序都会确定一个最值,直到最后一个。 而选择排序是每次只进行一次的交换,确定最值,进行n-1次的排序。

2 方法

2.1 为什么要使用方法

为了让那些可以独立功能的模块可以区别开来,成为一个独立的实体,这样更加简便,可以让其他程序任意多次地调用来完成特定功能。
方法的命名:必须是要以字母数字下划线或’$'组成,不能以数字进行开头。
跟变量一样,使用的是驼峰命名法。

2.2 方法的命名

必须是要以字母数字下划线或’$'组成,不能以数字进行开头。
跟变量一样,使用的是驼峰命名法。

2.3 方法的优点

使程序更加的简短并且清晰,
模块区分明显,出现问题的时候有利于维护,
有利于提高效率,方便设计与开发,提高代码的重用性

2.4 在方法的调用的过程

(1)为被调用的方法分配空间
(2)将实参的值复制一份传给形参
(3)程序进入到被调用的方法之中执行
(4)当遇到return的时候结束完方法或者可以执行完的时候结束,跳转到主函数中,然后分配的空间被收回。

2.5 方法的参数:

形参是:被调用的方法当中的参数,形参只在函数内部有效。
实参是:主调函数中的参数

2.7 return 语句

用于向调用方法返回值,语法如下:return (<表达式>);
(1)方法至多可以返回一个值,不能返回多个值。
return; //返回值可以是:当方法的返回类型为void。
return expression; //当方法需要返回某种类型数据时
(2)返回值的数据类型必须与方法原型中返回值的数据类型匹配;
(3)当遇到 return 语句时,方法执行将终止。程序控制流将立即返回调用方法;

2.8 重载

函数或者方法有相同的名称,但是参数和个数不相同的情形,这样的同名不同参数的函数或者方法之间,成为重载。

3 类和类的封装

3.1 类和对象有什么区别呢?

类是对象的抽象概括。对象是类的是具体实例。
使用:首先创建一个类,设计类的成员,其次创建类的对象,类的实例化,实例化类,其中关键字:new,对象实例化:将类加载到内存中。
语句:类名 对象名 = new 类名()

3.2 属性——对象具有的各种特征,每个对象的每个属性都拥有特定值。

3.3 类、方法、变量的区别

定义一个类主要包括有:定义类名,
类的属性=成员变量=field=域、字段,
以及对于类的方法=成员方法=method=函数。

3.4 结构

public class 类名 {
//定义属性部分
属性1的类型 属性1;
属性2的类型 属性2; …
属性n的类型 属性n;
//定义方法部分
方法1;
方法2; …
方法m;
}

3.5 类和对象的使用:

首先创建一个类,设计类的成员,然后创建类的对象=类的实例化=实例化类,其中的关键字:new,对象实例化:将类加载到内存中。类名 对象名 = new 类名();

3.6 方法调用

(在主函数中使用,调用对象的结构:属性、方法)
执行方法中包含的语句:调用属性,“对象名.方法名()”。

当定义属性之后,如果没有给属性进行实例化的对象进行赋值的话,会在方法的调用后输出定义属性的默认值。

4 封装

4.1 封装含义

就是隐藏实现细节,将属性私有化,提供公有方法访问私有属性,通过这些公有方法访问私有属性。
this代表当前类的实例,通过setter、getter方法访问name属性

4.2 类的封装实现

1、修改属性的可见性来限制对属性的访问
2、为每个属性创建一对赋值(setter)方法和取值(getter) 方法,用于对这些属性的访问
3、在setter和getter方法中,加入对属性的存取限制

4.3 使用private关键字修饰某个成员变量后,这个成员变量不可以被同一包中的其它类访问。

4.4 代码封装带给我们的好处是什么

安全,拓展,读写分离,增加了数据访问限制,增强了程序的可维护性。
特点
安全性,便于维护,代码简便,重用性强。

4.5 访问控制

通过访问控制,可以阻止对象的滥用,主要包括对于:
private私有类中只能在一个类中访问,以及对于public的公有类中可以在不同的类中使用。

5 static类和非静态类的区别

静态类和非静态类重要的区别是在于静态类不能被实例化。
非静态类是储存有状态的一类操作过程,非静态类里即可有静态成员,也可以有非静态成员。
非静态里的非静态方法需要实例化后才能被调用,格式如下:
非静态类名 变量 = new 非静态类名()构造函数
Static(全局)静态:用来修饰成员变量和成员方法,形成静态static代码块
用来修饰成员变量和成员方法时:
1、被static修饰的成员变量和成员方法独立于该类的任何对象。
2、static对象可以在它的任何对象创建之前访问,无需引用任何对象。
3、用public修饰的static成员变量和成员方法本质是全局变量和全局方法。
4、不能以任何方式引用this 或super。

6 next()和nextLine()的区别

了解next()和nextLine()的区别:
在string当中都可以使用next(),nextLine()
next():
在读取内容时,会将有效数字前面的无效字符自动将其过滤掉,只有在读取有效字符之后,才会将之后的空格键、tab键或Enter键等视为结束符,所以next()方法不能得到带空的字符串。
nextLine():
这个方法上面可以扫描一整行的意思,它的结束符只能是Enter键,即nextLine()方法返回是Enter键之前没有被读取的所有字符,它可以得到带空格的字符串。
比如:
String s1,s2;
Scanner sc=new Scanner(System.in);
System.out.print(“请输入第一个字符串:”);
s1=sc.nextLine();
System.out.print(“请输入第二个字符串:”);
s2=sc.next();
System.out.println(“输入的字符串是:”+s1+" "+s2);

7 什么是构造方法

构造方法负责对象成员的初始化工作,为实例变量赋予
合适的初始值。
构造方法的作用:是用来初始化值。
构造方法必须满足以下语法规则:
1、方法名与类名相同
2、没有返回类型

8 MVC 框架

是模型-视图-控制器(MVC)。M是指数据模型,V是指用户界面,C则是控制器。使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。
MVC是一个设计模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、视图、控制器。

hasNextInt()方法是判断预读取的作用,是不是数字的问题,不是的话就执行其他操作。

9 构造方法是不是可以重载,可以调用其他的方法?

构造方法是可以重载,可以调用其他的方法。
同一个类中的2个或2个以上的方法可以用同一个名字,只是它们的参数声明不同即可,在这种情况下,该方法就被称为重载,这个过程称为方法重载。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值