JAVA第六章总结

对象

在现实生活中,任何事物都可以称作对象,而对象又分为两个部分:静态和动态,也称之为属性

静态部分也就是不能动的,拿鸟举例,如:翅膀,名称,头,便是我们所说的静态部分

动态部分则是可以执行的动作,同样拿鸟举例,如:吃东西,飞行,


我们可以把类看成一个箱子,一种事物便是一类,如:鸟是鸟类,家禽是家禽类,人是人类。

一个事物不能是一类事物,如:一只鸟不能是鸟类

封装
把静态和动态放进类里面的这个动作就叫做封装,封装也是面向对象编程的核心思想,采用封装的思想保证了类内部数据的完整性

继承
类与类之间同样具有关系,这种关系被称为关联。

拿鸟举例:鸟类和大雁,鸟类里面包含大雁,大雁有的鸟类也有,而鸟类有的大雁不一定有,所有鸟类是大雁的父类,大雁是鸟类的子类

当我们已经创建了一个鸟类时,在想要创建一个大雁类时,我们可以直接将鸟类中有用的东西保留下来,如:翅膀,爪子。在添加一些大雁具有的独特属性和行为,这样就节省了定义鸟与大雁之间共有的属性和行为的时间,这就叫做继承,子类继承父类

多态
拿鸟举例:在鸟类里有不同种类的鸟如大雁,布谷鸟,麻雀,老鹰,这种就是多态

成员变量
对象中的静态属性也就是成员变量

例题6.1:

package liudanyuan;
 
public class lei6_1 {
        private String name; //String类型的成员变量
        public String getName() {//name的getter方法
            return name;
        }
        public void setName(String name) {//name的Setter方法
            this.name = name;//将参数值赋值给类中的成员变量
        }
    }


成员方法
对象中的动态属性也就是成员方法

权限修饰符
类修饰符分为三种:pubilc,private,protected

重点讲一下pubilc和private:

pubilc是共有的,你在里面写的所有东西其他的类都能用,不管这个类和你有没有关系,他都能用你写在里面的东西

private是私有的,不管你和我有没有关系,就算你和我有关系,你也不能用我写在里面的东西

protected则是你和我有关系那你就可以查看我写的东西,你和我没关系则不能查看

如果你想要在私有的里面的东西有两中方法:getter和setter,这两种getter是获取的意思,setter是设置的意思

局部变量
在成员方法中定义一个变量,这个变量就是局部变量

例题6.2:
 

package liudanyuan;
 
public class lei6_2 {
	public static int[] exchange(int[] arr) {
		int tmp = arr[0];//创建局部变量tmp
		arr[0] = arr[1];//第二个元素赋值给第一个元素
		arr[1] = tmp;第二个元素值改为tmp
		return arr;
	}
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int arr[] = {17,29};
		System.out.println("第一个值="+ arr[0]+",第二个值="+arr[1]);
		arr = exchange(arr);
		System.out.println("第一个值="+ arr[0]+",第二个值="+arr[1]);
	}
 
}

 this关键字

 

如图当你的name=name,根据就近原则,你只是把参数name赋值给了参数本身,成员变量的值并没有发生改变,这时加上一个this,如图

使this.name代表的是代码中的成员变量了, 而第二个name指的是参数

类的构造方法
在类中,除了成员方法还有一个特殊类型的方法——构造方法

new便是构造方法,当你在代码中输入new电脑便会自动产生一个变量

例题6.3:
 


package liudanyuan;
 
public class lei6_3 {
	int eggCount;//鸡蛋灌饼的数量
	
	public lei6_3(int eggCount) {//鸡蛋灌饼个数的构造方法
		this.eggCount = eggCount;//将参数eggcount的值赋给eggcount
	}
	
	public lei6_3() {//无参数构造方法,默认给饼加个蛋
    //调用参数为鸡蛋灌饼里面蛋的个数的构造方法,并设置鸡蛋灌饼里蛋的数量为1
		this(1);
	}
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		lei6_3 cake1 = new lei6_3();
		System.out.println("顾客不要求加蛋的数量,饼里会有"+cake1.eggCount+"个蛋。");
		lei6_3 cake2 = new lei6_3(2);
		System.out.println("顾客要求加两个蛋,饼里会有"+cake2.eggCount+"个蛋。");
	}
 
}

                            静态变量和静态方法

static修饰的变量和方法称为静态变量和静态方法

例题6.4:

package liudanyuan;
 
public class lei6_4 {
	static double PI = 3.1415;  //在类中定义静态变量
	 
	 public static void method() {  //在类中定义静态方法
	  System.out.println("这是静态方法");
	 }
	 public static void main(String[]args) {
	  System.out.println(StaticDemo.PI);   //调用静态变量
	  StaticDemo.method();    //调用静态方法
	}
 
}

 例题6.5:


package liudanyuan;
 
public class lei6_5 {  //顾客类
	static int count = 0;  //静态,共享的属性:人数
	String name;           //名称属性
	public lei6_5(String name) {
		this.name = name;  //记录名称
		count++;           //人数递增
	}
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		lei6_5 c1 = new lei6_5("tom");
		System.out.println("我是第"+lei6_5.count+"名顾客,我叫"+c1.name);
		lei6_5 c2 = new lei6_5("张三");
		System.out.println("我是第"+lei6_5.count+"名顾客,我叫"+c2.name);
		lei6_5 c3 = new lei6_5("狗蛋儿");
		System.out.println("我是第"+lei6_5.count+"名顾客,我叫"+c3.name);
	}
 
}

                             类的主方法

例题6.6:


package liudanyuan;
 
public class lei6_6 {
 
	public static void main(String[] args) {//定义主方法
		// TODO Auto-generated method stub
		for(int i = 0;i<args.length;i++) {//根据参数个数做循环操作
			System.out.println(args[i]);//循环打印参数内容
		}
	}
 
}

                                   对象

例题6.7:

package liudanyuan;
 
public class lei6_7 {
	String name;
	 int age;
	 String sex;
	 
	 public lei6_7(){
	 }
	 
	 public lei6_7(String name,int age,String sex) {
	  this.name = name;
	  this.age = age;
	  this.sex = sex;
	 }
	 
	 public static void main(String[]args) {
		 lei6_7 p1 = new lei6_7("tom",23,"男");
		 lei6_7 p2 = new lei6_7("lily",19,"女");
	}
 
}

 例题6.8:


package liudanyuan;
 
public class lei6_8 {
    //定义成员变量
	String name;
	 String Color;
	 String vioce;
	 
	 public lei6_8(String name,String color,String vioce) {
	  this.name = name;
	  this.Color = color;
	  this.vioce = vioce;
	 }
	 
	 public void call() {    //叫
	  System.out.println(vioce);
	 }
	 
	 public static void main(String[]args) {
	  lei6_8 d1 = new lei6_8("毛毛","白色","汪汪汪");
	  System.out.print(d1.name+"的颜色是"+d1.Color);//访问对象的属性
	  System.out.print(",叫起来的声音:");
	  d1.call();    //访问对象的行为
	  
	  lei6_8 d2 = new lei6_8("灰灰","灰色","嗷呜~");
	  System.out.print(d2.name+"的颜色是"+d2.Color);
	  System.out.print(",叫起来的声音:");
	  d2.call();
	}
 
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值