java变量和面向对象

数组

数组的静态初始化

指定数组的具体元素值,由系统默认分配它的长度!

如何静态初始化数组

数据类型[] 数组名称 = new 数据类型[]{元素1,元素2,元素3....}    
          int[] arr = new int[] {1,2,3} ;

简化版本

int[] arr = {};

注意定义一个数组不能动态静态初始化一起使用

数组的应用

数组的遍历:

需要将数组中的元素一一获取出来

public class ArrayTest2 {

	public static void main(String[] args) {
		//定一个数组,静态初始化
		int[] arr = {11,22,33,44,55} ;
        printArray(arr);
     /**
	 * 定义一个遍历数组的方法
	 * 两个明确
	 * 		1)明确返回值类型:void
	 * 		2)明确参数类型 int[]
	 */
    public static void printArray(int[] arr) {
		//遍历arr数组
		for(int x = 0  ; x <arr.length ; x ++) {
			System.out.print(arr[x] +" ");
		}
	}

最值

public class ArrayTest3 {
	
	public static void main(String[] args) {
		//自定一个数组,静态初始化
		int[] arr = {24,64,50,55,10} ;
        int max = getMax(arr) ;
		System.out.println("最大值是:"+max);    
}
        /**
	     * 两个明确
	     * 	1)明确返回值类型:int
	     * 	2)明确参数类型:int[] 数组
	     */
         public static int getMax(int[] arr) {
		//定义参照物,假设为最大值
		int max = arr[0] ;
		
		//遍历其他元素
		for(int x = 1 ; x < arr.length ; x ++) {
			//后面的元素依次和参照物进行比较,确定最大值
			if(arr[x] > max) {
				max = arr[x] ;
			}
		}
		
		
		return max ;
	}
}

一个数组的最大值

元素逆序

public class ArrayTest4 {
	
	public static void main(String[] args) {
		//定义一个数组,静态初始化
		int[] arr = {24,64,50,55,10} ;
		
		//逆序前
		System.out.println("逆序前:");
		printArray(arr);
		
		System.out.println("逆序后:");
//		reverse(arr);
		reverse2(arr);
		printArray(arr);
	}
	
	/**
	 * 定义一个元素逆序的方法
	 * 		1)确定返回值类型:void   
	 * 		2)明确参数类型:int[]
	 */
    public static void reverse(int[] arr) {
    for(int x = 0 ; x < arr.length/2 ; x ++) {
			int temp = arr[x] ;
			arr[x] = arr[arr.length-1-x] ;
			arr[arr.length-1-x] = temp ;
		}
	}
    /**
	 * 遍历数组
	 */
	public static void printArray(int[] arr) {
		System.out.print("[");
		//遍历元素
		for(int x = 0 ; x < arr.length ; x ++) {
			//判断是否是最后一个元素
			if(x==arr.length -1) {
				System.out.println(arr[x]+"]");
			}else {
				System.out.print(arr[x]+", ");
			}
		}
	}
}

 

基本元素的查找

基本查找法:从头查到尾...                                
     数组高级部分:二分查找/折半查找

public class ArrayTest6 {
	
	public static void main(String[] args) {
		//定一个数组
		int[] arr = {10,24,69,80,53,17} ;  
int index = getIndex(arr, 69) ;
		System.out.println("该元素在数组中的索引是:"+index);
public static int getIndex(int[] arr,int value) {
		//遍历数组
		for(int x =0 ; x < arr.length ; x ++) {
			//判断 如果要查找的value元素和arr[x]一致,返回x索引即可
			if(arr[x] == value) {
				return x ;  
			}
		}
return - 1;
	}

面向对象

面向对象的特点:

 面向对象的思想更符合我们生活中的思想行为习惯

让一个复杂的事情简单化

角色发生变化:让我们从执行者变成了指挥者

面向对象的特征:封装、继承、多态

封装

封装:就是将一个类中的成员变量私有化,对该类提供一些公共的访问方法!

关于private关键字:
       private :私有的,不能访问的

被private修饰的成员变量/成员方法,只能在本类中访问,外界不能够直接访问

class Student{
	//提供两个变量
	String name ;
	private int age ;
	
	//提供show(),作用:输出成员变量的
	public void show() {
		System.out.println(name+"---,"+age);
	}
//测试类
public class StudentDemo {

	public static void main(String[] args) {
		
		//创建Student类的对象
		Student s = new Student() ;
		
		//赋值
		s.name = "柔柔" ;
 s.show();

       

局部变量和成员变量的区别

 在类中位置不同

局部变量:在方法定义中或方法声明上

成员变量:在类中,方法外

 在内存中的位置不同

局部变量:在栈内存

成员变量:在堆内存

 生命周期不同

局部变量:随着方法调用而存在,随着方法调用结束而消失

成员变量:随着类的加载而加载,随着类的加载结束而消失(等待GC空闲状态)

 初始化不同

局部变量:必须在使用之前进行初始化

成员变量:可以不用初始化

 形式参数的问题:

 形式参数是基本数据类型:形式参数的改变,对实际参数没有影响

 形式参数是引用数据类型:形式参的改变:会直接影响实际参数

则:如果一个方法的形式参数是一个引用数据类型,就需要创建该引用类型的具体对象

  匿名对象:没有名字对象

 格式:new 类名() ;

 匿名对象的好处:

 调用一次即可,不适合调用多次

 调用完之后,会立即从内存释放掉,及时被GC垃圾回收器回收掉

 可以作为参数进行传递

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值