Java第六章总结

1.面向对象的描述

1.1对象是事物存在的实体

1.2同一类事物的统称,以方法的形式定义

1.3

封装是面向对象编程的核心思想,简单点说就是,我把某些东西封装起来,这些关键的核心的东西不能给你看,但是我可以提供给你一些简单使用的方法。

就说现在最最常用的手机,人人都会用,打电话、发短信、玩游戏、刷视频等等,但你知道手机怎么实现这些功能的吗??不知道吧,我们会用就可以了,怎么实现的对我们来说不重要。那这就很类似封装的理念了。
特点:封装性,继承性,多态性

1.4

继承

类与类之间同样具有关系,称为关联。继承就是关联的一种。

例题图如下

 1.5

多态

多个形态

例题图如下

 2类

成员变量

例题代码如下

 
public class Sixone {   //类
 
	private String name; //String类型的成员变量
	public String getName() {//name的Getter方法
		return name;
		
		
	}
	public void setName(String name) {//name的set方法
		this.name=name;//将参数的值赋予成员变量
	}
	
}
//6.1例题

2.1

成员方法

框住局部变量

 

 

 

 

点击蓝色Generate,生成成功

 2.2 局部变量

局部变量的有效范围 this关键字

例题代码如下

public class Bird {//静态属性
	//静态属性————成员变量去写
	private String name;//名字     //default默认的意思
	private String wing;//翅膀
	private String mouth;//嘴
	private String head;//头
	
	
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;//指这个类bird
	}
	public String getWing() {
		return wing;
	}
	public void setWing(String wing) {
		this.wing = wing;
	}
	public String getMouth() {
		return mouth;
	}
	public void setMouth(String mouth) {
		this.mouth = mouth;
	}
	public String getHead() {
		return head;
	}
	public void setHead(String head) {
		this.head = head;
	}

2.3

:类的构造方法

产生对象但信息不全面(需要传入参数)

例题代码如下

	
	//构造方法:调用构造方法创造一个对象
	public Bird(String name,String wing,String mouth,String head) {  //传入参数//构造了鸟这个类
		this.name = name;
		this.wing = wing;
		this.mouth = mouth;
		this.head = head;
		
	}
 
 public class  Sixone{
	 
	 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) {
		int arr[]= {17,29};
		System.out.print("第一个值="+arr[0]+"第二个值="+arr[1]);
		arr = exchange(arr);
		System.out.print("第一个值="+arr[0]+"第二个值="+arr[1]);
		
	} 
	 
 }//例题6.2

结果如下

 2.4

编写成员变量

使用快捷键(参考我选项卡)

1.静态属性——成员变量

2.动态属性——成员方法

例题代码如下

public class People {
  //姓名   //年龄   //性别   //身高   //体重
	//成员变量:类型加变量名
	private String name;//用修饰符修饰
	private int age;
	private String sex;
	private float hight;
	private float weight;
	
	
	
	//使用getter和setter方法对外部提供
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public String getSex() {
		return sex;
	}
	public void setSex(String sex) {
		this.sex = sex;
	}
	public float getHight() {
		return hight;
	}
	public void setHight(float hight) {
		this.hight = hight;
	}
	public float getWeight() {
		return weight;
	}
	public void setWeight(float weight) {
		this.weight = weight;
	}
	
	
	
	
	
	
	
	
	
	

成员方法

 
	//成员方法
	//写代码 方法名:code 传入参数:语言,返回参数:”某某某正在写xxx代码“
	public String code(String language) {  //公开+类型+传入参数
		
		return name+"张红"+language+"Java代码";//返回name值+类型
		
	}
	
	public String introduce() {
		
		return age+"梁深年22岁" + sex + "性别男" +hight+"1米88" +hight+"60kg";
		
	}
	
	
	
	
}

例题代码

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

结果如下

 

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

 

对象的销毁
为什么要销毁对象

每个对象都有生命周期,当对象的生命周期结束时,分配给该对象的内存地址需要被回收

 垃圾回收器

 在其他语言中,需要用户手动回收废弃的对象,JAVA拥有一套完整的垃圾回收机制,用户不必担心废弃的对象占用内存,垃圾回收器会自动回收无用却占用内存的资源

 怎么判断对象会被JAVA虚拟机视为垃圾?主要包括两种情况

 对象引用超过其作用范围,这个对象将被视为垃圾

 


 2.这个对象被赋值为null

 

不足
虽然JAVA的垃圾回收机制已经很完善,但垃圾回收只能回收那些由new操作符创建的对象

 某些对象不是通过new创造并获得存储空间的这些对象是无法被垃圾回收机制所识别

finalize()
 那么JAVA提供了一个finalize方法

这个方法是object类方法,他被声明为protected,用户可以在自己的类中定义这个方法,定义了这个方法后,垃圾回收时会首先调用该方法

system.gc()
由于垃圾回收不受人为控制,具体的执行时间也不能明确的确定,所以finalize()方法也就无法执行,因此JAVA又提供了system.gc()方法来强制启动垃圾回收器,会主动告知垃圾回收器来清理垃圾
 

课后作业

 

package b;
 
public class rw {
	//变量
	String xing;
	String ming;
	String se;
	String jiao;
	//get   set
	public String getXing() {
		return xing;
	}
	public void setXing(String xing) {
		this.xing = xing;
	}
	public String getMing() {
		return ming;
	}
	public void setMing(String ming) {
		this.ming = ming;
	}
	public String getSe() {
		return se;
	}
	public void setSe(String se) {
		this.se = se;
	}
	public String getJiao() {
		return jiao;
	}
	public void setJiao(String jiao) {
		this.jiao = jiao;
	}
	
	//方法
	public String introduce() {
		return xing+"狗"+ming+"是"+se+"的";
	}
	public String bark() {
		return xing+"狗"+ming+"正在"+jiao+"叫";
		
	}
	//构造方法
	public rw()
	{
		
	}
	public rw(String xing, String ming, String se) {
		super();
		this.xing = xing;
		this.ming = ming;
		this.se = se;
	}
	public rw(String xing, String ming, String se, String jiao) {
		super();
		this.xing = xing;
		this.ming = ming;
		this.se = se;
		this.jiao = jiao;
	}
	
	
}

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值