Java——面向对象

面向过程
    步骤1,2,3---算法
面向对象(Oriented Object )
    需要什么对象
    什么对象?
        万事万物都是对象。
        具体看得见摸得着的具体存在。
        描述对象:
            张三这个学生
            静态的特征:姓名,性别,学校,课程,成绩
            动态的特征:动作,行为,功能,能力等等,吃,上课,做作业,考试,请假
            对象静态特征和动态特征的结合体。
        
    类:
        我们自然而然地对周边的事物进行分类。
        
    类和对象的关系
        类:抽象的概念,集合,数据类型
        对象:具体某一个,个体,实例
        
        不是整体与局部的关系
        学生--张三  饭--扬州炒饭    牛--牛头
        
    面向对象编码的思路
        1)抽象出类:Dog Cat
        2) 抽象出业务相关属性:对象共有的静态特征
            Dog:昵称,年龄,品种
            数据类型  变量名;
        3)抽象出业务相关的方法:对象共有的动态特征
            Dog:吃,睡,玩,治疗
            访问控制符  返回值类型  方法名(参数列表){
                //
            }
        4)实例化对象
            对象名.属性
            对象名.方法()
            
        属性,全局变量,实例变量:
            初始值:
                系统会分配默认值。
                引用类型的数据默认值null.null就是没有指向任何一块堆内存
                NullPointException的原因都是在null值上调用属性和方法
                int 默认值0 char默认值 空字符  double 0.0 boolean false
            作用域:
                整个类。在类的内部,各个方法都可以使用。
            生命周期:创建对象--对象销毁
                Dog d=new Dog();
                d=new Dog();
                垃圾回收程序gc 去回收游离的对象。
        局部变量
            初始值:没有初始值,必须手动初始化
            作用域:定义它的方法中才有效
            生命周期:方法调用---方法执行结束
            
            问题:全局变量和局部变量可以重名吗?
                可以。局部变量优先级更高
                通过this关键字来引用全局变量
    
        this
            关键字,指代当前对象,谁调用这个方法,我就指代谁
    
        方法:
            动作,行为,功能,能力等等
            抽象的原则:一个功能一个方法,一个动作一个方法
            举个例子:一个计算器 加 减 乘 除
                    计算java,web,sql的总成绩和平均分
            
                    电动狮子玩具,跑,唱歌
            方法定义:
                访问控制符  返回值类型  方法名(){
                    //方法体
                }
                返回值类型 此功能执行结束,需要返回给调用者什么结果    
                    如果不需要返回,就写void
                    如果需要返回,就写返回值的数据类型
                        方法体中最后必须以return 返回值;
                        
                    return 结束方法的
                
                方法名 :与变量命名规则一致
                方法体:完成此功能的过程
                    定义变量,运算符,程序流程结构
            
            方法调用:
                本质:执行方法体
                
                有返回值的方法: 对象名.方法(); 调用之后可以赋值,还可以输出,比较等等
                无返回值的方法:对象名.方法();
            
                在其他类中调用方法:
                    1、创建对象 
                    2、对象名.调用方法
                在同一类中可以调用方法
                    可以直接调用
            方法调用栈:
                当执行方法时,就进栈,
                执行结束,就弹栈。
                
            方法的好处:代码重用,维护性好
                
            练习:
                定义电池类 :充电     获取当前电量的方法
                定义MP3类:下载音乐,播放下载的音乐,充电(电池的充电)

package se0619;

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

                计算java,web,sql的总成绩和平均分    

package se0619;

public class Calculator {
	double java;
	double web;
	double sql;
	
	//计算总成绩
	public double calSum() {
		double sum=java+web+sql;
		return sum;
	}
	//计算平均分
	public double calAvg() {
		return calSum()/3;
	}
}



package se0619;

public class TestAutoLion {

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

}


    
        
    
    
    
    

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值