Java面向对象(无参方法)①

本文介绍了面向对象编程中如何抽象类和属性,如Dog和Cat类的实例化,以及业务方法的定义。重点讲解了全局变量、局部变量的区别,方法的返回值和调用,对象数组的使用,以及代码示例演示了Dog和AutoLion类的实例操作和方法调用。
摘要由CSDN通过智能技术生成

面向对象编码的思路

  • 抽象出类:(Dog  Cat)
  • 抽象出业务相关的属性:对象共有的静态特征

        Dog:昵称,年龄,品种

        数据类型 变量名;

  • 抽象出业务相关的方法:对象共有的动态特征

        Dog:吃,睡,玩,治疗

访问控制符 返回值类型 方法名(参数列表){

}

  • 实例化对象

对象名.属性

对象名.方法()

属性--全局变量--实例变量:

初始值:

        系统会分配默认值。

         引用类型的数据默认值null,null就是没有指向任何一块堆内存

         NullPointExpection的原因都是在null值上调用属性和方法

        int 默认值0   char默认值 空字符 double 0.0   boolean false

作用域:

        整个类,在类的内部,各个方法都可以使用

生命周期:创建对象--- 对象销毁

        Dog d = new Dog();

        d = newDog();

        垃圾回收程序gc,去回收游离的对象。

局部变量

        初始值:没有初始值,必须手动初始化

        作用域:定义它的方法中才有效

        生命周期:方法调用---方法执行结束

        问题:全局变量和局部变量可以重名吗?

                可以,局部变量优先级更高。

                通过this关键字来引用全局变量

this

        关键字,指代当前对象,谁调用这个方法,我就指代谁

方法:

        动作、行为、能力、功能等等

        抽象的原则:一个功能一个方法,一个动作一个方法。

        

        方法调用:

                本质:执行方法体

                

                有返回值的方法:对象名.方法();调用之后可以赋值,还可以输出,比较等等……

                无返回值的方法:对象名.方法();

                在其它类中调用方法:
                        1.创建对象

                        2.对象名.调用方法

                 在同一类中可以调用方法

                        可以直接调用

 方法调用栈:
                当执行方法时,就进栈。

                执行结束,就弹栈。

方法 :代码重用        

对象数组

        学生数组

Student[] stu = new Student[3];
stu[0] = new Student();
stu[0],name = "张三";
stu.age = 20;

Student ss = new Student();
ss.name = "李四";
ss.age = 12;
stus[1] = ss;

-------------------------------------------------------------------------------------------------------------------------

  • 代码①

public class Dog {
	//属性:数据类型 变量名;
	//昵称
	String name;
	//年龄
	int age;
	//品种
	String strain;
	
	//方法
	/**
	 访问控制符 返回值类型 方法名(参数列表){
	 	//
	 }
	 
	 public 公共的,共有的---访问控制符
	 void 返回值类型
	 */
	//吃
	public void eat() {
		System.out.println("狗吃骨头......");
	}
	
	//展示信息
	public void show() {
		System.out.println("昵称:" + this.name);
		System.out.println("年龄:" + this.age);
		System.out.println("品种:" + this.strain);
	}
}

代码测试类: 

package D0619;

public class TextDog {
	public static void main(String[] args) {
		//创建狗的对象  类名 对象名 = new 类名();
		Dog dog1 = new Dog();
		dog1.name = "阿奇";
		dog1.strain = "拉布拉多";
		dog1.age = 2;
		dog1.show();
		dog1.eat();
	}
}

运行结果:

代码②

public class AutoLion {
	String color;
	//跑
	/**返回值类型 此功能执结束 需要给调用者返回什么结果
		如果不需要返回写 void
		如果需要返回就写返回值的数据类型
			方法体最后必须以return 返回值
			
		return 结束方法的
		方法名:与变量命名规则一样
		方法体:完成此功能的过程
	*/
	public void run() {
		//if(color == null)return;
		System.out.println(this.getColor()+"的电动狮子跑......");
		this.sing();
	}
	
	public void sing() {
		System.out.println("唱......");
	}
	//获取颜色
	public String getColor() {
		return "黄色";
	}
}

 代码测试类:

package D0619;

public class TextAutoLion {
	public static void main(String[] args) {
		//创建对象
		AutoLion al = new AutoLion();
		al.run();
		al.sing();
		System.out.println(al.getColor());
	}
}

运行结果:

代码③:

public class Battery {
	public void charge() {
		System.out.println("充电中...");
	}
	
	public double getCharge() {
		return 0.8;
	}
}

public class TextBattery {
	public static void main(String[] args) {
		Battery b = new Battery();
		b.charge();
		System.out.println(b.getCharge());
	}
}

public class MP3 {
	public String download() {
		//System.out.println("正在下载...");
		return "小苹果";
	}
	
	public void play() {
		System.out.println("正在播放" + download());
		
	}
	
	public void charge() {
		Battery b = new Battery();
		b.charge();
	}
	public static void main(String[] args) {
		MP3 m = new MP3();
		System.out.println(m.download());
		m.play();
		m.charge();
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值