博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java基础之方法、数组、面向对象
阅读量:2745 次
发布时间:2019-05-13

本文共 6284 字,大约阅读时间需要 20 分钟。

方法:完成特定功能的代码块;

        方法的格式:

public static  返回值 方法名(参数类型1 变量1,参数类型2 变量名){ 	return ...}

        方法的解释:

public static:方法是静态的,并且是公共的方法  (今天写方法,public static);返回值(数据类型): 根据具体的需求,返回什么类型,用什么样的数据类型结束;方法名:给当前代码块起名字,命名规则:单个单词:字母全小写 多个单词:第一个单词全部小写,第二个单词开始每个单词首字母大写;return:将当前代码的计算的结果,返回给调用者;
        
方法调用:
1)单独调用:        单独调用,没有意义,没有输出结果;2)输出调用:        直接输出了结果,写死了,不能对结果进行操作;3)赋值调用:有返回值类型的方法,推荐使用赋值调用,它可以结果进一步操作;        int result = sum(a,b) ;
        
定义一个方法的注意事项:
    1)方法和方法是平级关系,一个方法中不能再定义个方法    2)定义一个方法 时候,形式参数必须有数据类型,否则有问题    3)在主main()中,调用方法的时候,实际参数中不需要带数据类型的    4)有大括号的地方,不能有分号,有分号的地方不能有大括号
        
举例:
package org.westos.g_function;import java.util.Scanner;/** * 键盘录入行数和列数,在控制台输出对应的*形 * @author Administrator * */public class FunctionTest4 {		public static void main(String[] args) {				//创建键盘录入对象		Scanner sc = new Scanner(System.in) ;				//接收数据		System.out.println("请输入一个行数:");		int x = sc.nextInt() ;				System.out.println("请输入一个列数:");		int y = sc.nextInt() ;				//调用		print(x,y) ;			}		/**	 * 两个明确	 * 	1)返回值类型:没有具体的返回值:void	 * 	2)明确参数类型:2个参数 分别int	 * */	public static void print(int a,int b) {  //a ,b 		for(int x = 0 ; x < a ; x ++) {			for(int y = 0 ; y < b ; y++) {				System.out.print("*");			}			System.out.println();		}	}}

数组:可以存储多个元素并且多个元素是同一种类型的容器;

        数组的定义:

                数据类型[] 数组名;
数据类型 数组名[];
         
举例:
int[] a;
定义了一个int类型的数组变量a
int a[] ;       定义了一个int类型 变量a数组

                这两种方式的定义:虽然写法不一样,并且读法不一样,但是表达的效果一样,都是在定义一个数组,推荐使用第一种方式;

        
数组的初始化:
1)动态初始化:  给数组指定长度,数组中的元素值由系统默认给定
2)静态初始化:  给定数组中元素的值,数组的长度由系统给定;    
                
动态初始化:
         数据类型[] 数组名 = new 数据类型[数组长度] ;
                         举例:
                int[] arr = new int[3] ;
                
数组的静态初始化:
        指定数组的元素,长度由系统给定
                        定义个数:
                        原始格式:
                数据类型[] 数组名称 = new 数据类型[]{元素1,元素2,元素3....} ;
                        简写方式:
                数据类型[] 数组名称= {元素1,元素2,元素3..} ; 
                        举例:
                int[] arr = new int[]{1,2,3} ;
                int[] arr = {1,2,3} ;
                        这种方式错误:
动静结合  定义数组要么动态初始化,指定长度,要么静态初始化指定数组元素!
                int[] arr2 = new int[3]{1,2,3} ;
        
数组中经常会出现的异常:
ArrayIndexOutOfBoundsException:数组角标越界异常
出现的原因:访问了数组中不存在的索引值;
解决方案:观察数组中到底有索引值到多少;  数组长度-1
NullPointerException:空指针异常 (在实际开发中该异常是最多的)
出现的原因:对象为null,而开发者还要去使用对象,就会出现问题
解决方案:给某个对象进行非空判断,防止程序程序空指针异常
                对于异常:
        把从头到尾,将遇见到的异常建立文档;
出现该异常的原因;

如何解决异常;

        举例:

package org.westos.array;/** * 数组中的应用: * 		给定一个数组,静态初始化的,遍历这个数组; * @author Administrator * */public class ArrayTest {		public static void main(String[] args) {				//定义数组,静态初始化		int[] arr = {11,22,33,44,55} ;				/**		 * 获取数组中的元素值,通过数组名称[索引]获取		 */		System.out.println(arr[0]);		System.out.println(arr[1]);		System.out.println(arr[2]);		System.out.println(arr[3]);		System.out.println(arr[4]);				System.out.println("----------------------");				//遇见这种重复性高的代码,可以采用for循环 :循环的思想		for(int x = 0 ; x < 5 ; x ++) {			System.out.println(arr[x]);		}				System.out.println("----------------------");				int[] arr2 = {11,22,33,44,56,78,23,10,20,30} ;		//如果数组中的元素非常多,数元素个数非常麻烦		/**		 * 针对这种情况,Java提供数组的属性:lenth属性		 * 获取数组中的长度		 */		System.out.println(arr.length);		System.out.println(arr2.length);		System.out.println("----------------------");				//将上述代码继续改进,使用数组的长度进行操作		for(int x = 0 ;x < arr.length ; x ++) {			System.out.println(arr[x]);		}				//继续改进:学习方法,所以将遍历的功能写成一个独立的代码块		//调用		printArray(arr2);		System.out.println("------------------------");		printArray(arr) ;				System.out.println("------------------------");		//遍历数组之后:[11, 22, 33, 44, 55]		printArray2(arr);		printArray2(arr2);	}	/**	 * 定义方法:两个明确	 * 		1)返回值类型: 没有具体返回值:void	 * 		2)参数类型:int类型数组	 * 		 */	public static void printArray(int[] arr) {		for(int x = 0 ; x < arr.length ; x ++) {			System.out.println(arr[x]);		}	}		//最终改进:	public static void printArray2(int[] arr) {		//左中括号		System.out.print("[");		for(int x = 0 ; x < arr.length ; x ++) {			//判断当前x是否是最后一个索引			if(x==arr.length-1) {//如果是最后一个索引的对应的元素				System.out.println(arr[x]+"]");			}else {				System.out.print(arr[x]+", ");			}		}	}}

面向对象:

        讲面向对象之前:

        面向过程:
        假设有一个需求:求数组中的最大值;
        定义一个数组,静态初始化---->定义一个参照物---->遍历....
        给一个需求,对需求分析,然后一步一步进行操作,最终得到某一个结果,整个过程都是自己在完成....
        面向对象的思想概述:
思想的特征:
1)面向对象更符合我们的生活中的行为思想习惯
2)面向对象将我们从执行者变成了指挥者,指挥对象做事情
3)面向对象简单性体现在这里:让我们事情从复杂性--->简单化

举例:

洗衣服:    面向过程:脱下脏衣服--->放到一个盆里面--->加水,洗衣液---->泡一泡--->搓一搓---->拧一拧----->晾一晾    面向对象:脱下脏衣服--->放到一个全自动洗衣机中--->一键---->晾一晾	炒菜:    面向过程:买菜--->摘菜--->洗菜--->切菜--->炒菜--->出锅    面向对象:找一个对象..--->出锅...
        
举例:
把大象装进冰箱	1)装大象的方法in()	2)开冰箱门:open()	3)关闭冰箱门:close()	面向过程:		class Test{				main(..){				//分别调用三个方法				open();				in();				close();			}							//开冰箱门			public static void open(){				System.out.println("开冰箱门...") ;			}			//装大象			public static void in(){				System.out.println("把大象塞进冰箱") ;			}							//关闭冰箱门			public static void close(){				System.out.println("开冰箱门...") ;			}		}				面向对象:		把大象装进冰箱 :   名词提取法:  大象类,冰箱类,测试类					class 大象类{			public static void in(){				System.out.println("把大象塞进冰箱") ;			}		}					class 冰箱类{			public static void open(){				System.out.println("开冰箱门...") ;			}							public  static  void close(){				System.out.println("开冰箱门...") ;			}		}				class Test{			main(){				类名.方法名() ;				大象类.in() ;				冰箱类.open();				并迅雷.close() ;			}		}
        
面向对象的三大特征:
    封装;    继承;    多态;
        万物皆对象...

        学习编程语言,就是为了模拟现实世界的事物;

        面向对象语言中现实世界的事物在代码中如何体现的;
学生
属性:姓名 年龄 性别 ...学号
行为:学习,打游戏....
        学生现实世界的事物------>代码       学生类:Student
        属性:属性:姓名 年龄 性别 ...学号 成员变量:name,age,sex...
        行为:学习,打游戏.... 成员方法:study(),playGame();
总结:
面向对象
:将事物看成XX类,将事物对应的属性--->看成这个类的成员变量

将事物对应的行为----->看成这个类的成员方法

        //属性看成成员变量,行为看成成员方法;
                描述一个学生事物,
        属性:姓名,年龄,性别,学号
        行为:学习
                在Java中,创建对象:new对象
                        
类名 对象名 = new 类名() ;

        举例:

package org.westos.面向对象练习;import java.util.Scanner;/** * 需求:有一个长方形,宽度和高度可以键盘录入,求长方形的周长和面积 * 	然后在测试类Test2类中进行测试 *  * 分析: * 		定义一个长方形类 * 					成员变量:宽度和高度 * 					成员方法:求周长和面积 * @author Administrator * *///定义一个长方形类class ChangFangXing{	//定义成员变量	private int width ;	private int length ;		//无参构造	public ChangFangXing() {			}		//只需要提供setXXX()公共方法	public void setWidth(int width) {		this.width = width ;	}	public void setLength(int length) {		this.length = length ;	}		//周长	public int zhouChang() {		return (width+length) *2 ;	}		//面积	public int getArea() {		return length * width ;	}}//测试类public class Test2 {		public static void main(String[] args) {				//创建键盘录入对象		Scanner sc = new Scanner(System.in) ;				//接收数据		System.out.println("请输入长方形的长:");		int length	= sc.nextInt() ;				System.out.println("请输入长方形的宽:");		int width	= sc.nextInt() ;				//创建ChangFangXing类的对象		ChangFangXing cfx = new ChangFangXing() ;				//进行赋值		cfx.setWidth(width);		cfx.setLength(length); 				System.out.println("长方形的周长是:"+cfx.zhouChang());				System.out.println("长放形的面积是: "+cfx.getArea());			}	}

转载地址:http://mazad.baihongyu.com/

你可能感兴趣的文章
卓越与淘宝否认并购传言 称无任何资本运作
查看>>
日本最大电信公司NTT员工明年可在家上班
查看>>
我市筹建嵌入式系统公共开发平台
查看>>
首次评测谷歌Chrome浏览器 表现不俗
查看>>
互联网数据中心:超70%软件企业竞争力不足
查看>>
谷歌Chrome将消灭火狐甚至Safari
查看>>
传李开复将离开谷歌中国 由刘允接替职位
查看>>
Adobe彻底改造Photoshop 推移动版本
查看>>
iPhone girl原是论坛站长自我炒作
查看>>
微软Office Live Workplace用户过百万
查看>>
观点争鸣: 当软件变成“汉堡包”
查看>>
分析师:谷歌Chrome不适合企业用户
查看>>
中兴在海外大种棕榈树
查看>>
易趣难撼淘宝 王雷雷辞去TOM集团一切职务
查看>>
VMware研发经理宣布离职 投奔甲骨文怀抱
查看>>
云计算会给企业和个人带来哪些变化
查看>>
报告称移动飞信跃居即时通讯第二
查看>>
为何大家都爱“番茄”?
查看>>
浙江上半年软件出口增6成 美日为主要市场
查看>>
中兴工程师遭绑内幕:安全意识不强被密探盯上
查看>>