六、Java 类与对象

1 冒泡排序
2 二维数组
3 类与对象
4 对象的使用和内存空间
5 面象对象的封装性

1 、冒泡排序

      int [] a =new int []{9,7,4,6,5,3,1,2,8,0};
		
		//外循环控制比较的趟数 (数组的长度-1 ),内循环控制两两比较
			
		for (int i = 0; i <a.length-1 ; i++) 
		{
			for(int j=0;j<a.length-1-i;j++)
			{
				
				if(a[j]>a[j+1])
				{
					 int temp=a[j];
					 a[j]=a[j+1];
					 a[j+1]=temp;
				}
			}		
		}

2 、二维数组

	 二维数组  : 有一个数组,它的每个元素,都是数组类型的
	 
	 二维数组的声明
	  int [] x [] //可以
	  int [][] x //可以
	  
	  int [][] xx=new int [3][] //xx是一个二维数组,它里面有3个元素(每个元素都是一个数组), 但是,每个元素(数组)的长度是不确定
	                            //此时取  System.out.println(xx[0]); 得到null , System.out.println(xx[4]); 脚标越界
	                            
	  int [][] xx= new int [][]  //不合法 连数组中有几个元素都不知道
	  int [][] xx= new int [][5]  //不合法
	  int [][] xx= new int [3][50]
	    //合法,数组中有三个元素(每个元素又是一个数组,这个数组中有50个元素)
	  
	  
	  xx[0][0]=20  //给第一个元素赋值
	  xx[2][49]=90  //给最后一个元素赋值  或  xx[2][xx[2].length-1]=90; 
	  
	  练习 声明一个 3* 4 的二维数据,随机生成数据,最后求数组中所有元素的合
		public static void main(String[] args) {
				int [] [] x =new int  [3] [4]; 
		
		    //用随机数给数组赋值
				for(int i=0;i<3;i++)
				{
					for(int j=0;j<4;j++)
					{
						x[i][j]=(int)(Math.random()*10);
					}
				}
					
			
		     //求合
				int s=0;
				for(int i=0;i<3;i++)
				{
					for(int j=0;j<4;j++)
					{
						s+=x[i][j] ;
					}
				}
				
				System.out.println("总合是"+s);
			}

3、类与对象

	面象对象,相对于面向过程而言,是一种编程思想
	
	面象对象编程的三大特征 封装,继承,多态
	
	类:对现实生活中事务的抽象描述   //水果
	对象: 这类事务具体的实实在在的存在的一个个体  //哈蜜瓜
	
	如果对应在java中,类就是用class定义的 类
	对象,就是new 出来的实体
	
	站在面象对象的角度上,理解
	int x=5 
	
	int 就是类, x 就是对象
	
	
	//例子,类的声明
	//在类体中,只有两种东西 属性(直接定义在类体中的变量),方法(函数)
	class Cat
	{
		String name ;  //猫的名字
		int age;  //猫的年龄
		
		void shout()
		{
			System.out.println("喵喵~~");
		}	
	}


//例子 设计一个计算器,能进行一个加法计算
public class Calc 
	{
		String 样式 ="方形";
		String 颜色="绿色" ;
		
		//这个计算器提供一个方法,能进行加法运算
		int add (int a,int b)
		{
			return a+b;
		}
	}
		
	class Test{
		public static void main(String[] args) 
		{
			int a=90;
			int b =40;
			
			Calc jisuanqi =new Calc();  //使用计算器类创建一个类对象
			int result= jisuanqi.add(a, b);
			
			System.out.println(result);
		}
	}

4、对象的使用和内存空间

	 -- 内存分配情况
				  public class Cat 
					{
						int age;
						String name;
						
					  void speak()
						{
							System.out.println("我的年龄是 "+age +"我的名字是 "+name);
						}
					}
 					
 					//使用的时候
         	Cat c=new Cat();
		      c.speak();   -> 我的年龄是 0我的名字是 null  //说明,对象中的属性,有默认的初值
		      
		 -- 匿名对象
		     new Cat().speak()    //经过这个操作后,它马上成为垃圾
		     new Cat().age =90- 这样的操作,没有任何意义
		     
		     使用场景
		       = 做为参数传递
		       = 对象中的方法,只执行一次

5、面象对象的封装性

		  隐藏对象的属性 ,和方法的实现细节,对外提供公共的方法访问
		  -- 将复杂的操作封闭在方法的内部,内部细节对外不可见 
		  -- 将方法或属性进行封闭,外界不可见
		  
		     提高安全性,提高可重用性,将变化隔离
		     
		public class Student 
		{
			private int age;
			private String stuName;
			private String school;   //alt _shift _s
			
			void study() {
				System.out.println("学生正在学生");
			}
			
			void introduce(){
				System.out.println("我叫"+stuName+"我的年龄 "+age+"  我的学校" +school);
			}
		
		
			public int getAge() {
				return age;
			}
		
			public void setAge(int age) {
				this.age = age;
			}
		
			public String getStuName() {
				return stuName;
			}
		
			public void setStuName(String stuName) {
				this.stuName = stuName;
			}
		
			public String getSchool() {
				return school;
			}
		
			public void setSchool(String school) {
				this.school = school;
			}
		
		}
		
		class Test2{
			public static void main(String[] args) {
				Student stu=new Student();
				stu.setAge(19);
				stu.setSchool("北大");
				stu.setStuName("高洪喜");
				
				stu.study();
				stu.introduce();
			}
			
		}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值