第六章总结

本文介绍了面向对象编程的基础概念,包括对象的静态和动态属性,类的定义,封装的概念,以及继承和多态。同时讲解了成员变量和成员方法,权限修饰符如public和private的作用,以及构造方法、静态变量和静态方法的使用。
摘要由CSDN通过智能技术生成

                                        对象

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

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

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

                                          类

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

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

                                        封装

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

                                        继承

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

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

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

                                         多态

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

                                     成员变量

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

例题6.1:

package liudanyuan;

public class lei6_1 {
		private String name;
		public String getName() {
			return name;
		}
		public void setName(String name) {
			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];
		arr[0] = arr[1];
		arr[1] = 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;
	}
	
	public lei6_3() {
		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、付费专栏及课程。

余额充值