JavaSE基础五----【面向对象(1)面向对象介绍,类与对象,方法重载】


1.面向对象


面向过程思想:把要完成的事情;分步骤完成。

例如:蒸米饭:分为四个步骤:
(1)打开电饭煲的盖子;
(2)将米饭和水放入电饭煲内;
(3)盖好锅盖;
(4)打开电源开关.

面向对象思想:正所谓物以类聚;对于要完成的事情;进行初步分类;不关心具体做什么;关心的是谁去做这件事。

例如:蒸米饭:分为两类
(1)人:打开电饭煲盖子; 放入米饭和水; 盖好锅盖; 打开电源
(2)电饭煲:进行蒸米饭


2.类与对象


类:对于同一类(具体存在的事物)共同拥有的属性和方法的定义;

类作为一个模板;可以根据类来创建这个类的具体事例;也就是对象;

对象:对象是类的实例;是具体存在的事物。


初步理解:类=属性+方法
//宠物类
public class Pet{
    //成员变量;属性
    String name;
    int age;
    String about;
    //成员方法;行为;
    public  void say(){
        System.out.println(name+"说话");
    }
    public  void sleep(){
        System.out.println(name+"睡");
    }
    public  void  run() {
        System.out.println(name+"跑");
    }
}

测试类:


//Pet类测试类
public class TestPet {
    public static void main(String[] args) {
        //创建Pet的对象dog
        Pet dog=new Pet();
        //属性赋值
        dog.name="dog";
        dog.age=10;
        //使用方法
        dog.say();
        //创建Pet的对象cat
        Pet cat=new Pet();
        //属性赋值
        cat.name="cat";
        //使用方法
        cat.run();
        cat.sleep();
        //name属性已经赋值为cat;输出cat
        System.out.println(cat.name);
        //about属性没有赋值;默认输出String的默认值null
        System.out.println(cat.about);
    }
}

输出

dog说话
cat跑
cat睡
cat
null

3.类中的变量


[修饰符] 类型 变量名 = [值]

从数据类型角度分:

基本类型变量: byte short int long float dobule char boolean

引用类型变量: 类 数组 接口…


按照位置划分:

成员变量:直接被类包含。
​成员变量的数据类型可以为基本类型也可以为引用类型。
​可以对成员变量进行初始化赋值(不建议使用,作为公有的属性;在后续创建对象时,还是需要按照各自需求进行赋值的), 如果不初始化,创建对象时,可以调用构造方法使用默认值赋值。
成员变量在创建对象的时候会从类中复制一份到对象中。
成员变量可以被类中方法、构造方法和特定类的语句块访问。
成员变量生命周期: 由对象创建到该对象被回收时。

局部变量:在方法(成员方法,构造方法)中 或者代码块中

​ 局部变量在使用前必须显示的初始化赋值

​ 局部变量生命周期: (方法被调用时),(方法运行结束 出栈)


4.类中的方法


成员方法: (非static修饰的) 被对象调用. 完成对象的功能(行为) 定义在类中

成员方法 类的行为(动词)
访问权限修饰符 返回值类/void 方法名(参数类型 参数名){
[return 值]
};


构造方法 : 用来初始化创建出来的对象
方法名与类名相同,没有返回值,不需要void修饰。
分为无参数构造方法;有参数构造方法。
每一个类中至少有一个默认无参的构造方法,每次创建对象时至少调用一个。
如果显示的定义一个构造方法,默认的就失效了;有参数构造方法时;需要一个无参数构造方法。


//宠物类
public class Pet{
    //成员变量;属性
    String name;
    int age;
    String about;
    //成员方法;行为;
    public  void say(){
        System.out.println(name+"说话");
    }
    public  void sleep(){
        System.out.println(name+"睡");
    }
    public  void  run() {
        System.out.println(name+"跑");
    }
    //无参数构造方法
    public Pet(){
        System.out.println("无参构造方法");
    }
    //有参数构造方法
    public Pet(String a,int b){
     name=a;
     age=b;
        System.out.println("有参构造方法");
    }
}

测试类:


//Pet类测试类
public class TestPet {
    public static void main(String[] args) {
        //创建Pet的对象dog
        Pet dog=new Pet();
        //属性赋值
        dog.name="dog";
        dog.age=10;
        //使用方法
        dog.say();
        //创建Pet的对象cat
        Pet cat=new Pet();
        //属性赋值
        cat.name="cat";
        //使用方法
        cat.run();
        cat.sleep();
        //name属性已经赋值为cat;输出cat
        System.out.println(cat.name);
        //about属性没有赋值;默认输出String的默认值null
        System.out.println(cat.about);
       
        //创建Pet的对象rabbit
        Pet rabbit=new Pet("rabbit",5);
        //上述有参数构造中已经赋值;
        System.out.println(rabbit.name);
        System.out.println(rabbit.age);
    }
}

输出
无参构造方法
dog说话
无参构造方法
cat跑
cat睡
cat
null
有参构造方法
rabbit
5

5.方法重载


方法重载:在一个类中,有相同的方法名称,但是形参不同。

规则:
方法名称必须相同;参数列表必须不同;
方法的返回值可以相同,也可以不相同;
与访问权限修饰符无关.


//宠物类
public class Pet{
    //成员变量;属性
    String name;
    int age;
    String about;
    //成员方法;行为;
    public  void say(){
        System.out.println(name+"说话");
    }
    public  void sleep(){
        System.out.println(name+"睡");
    }
    public  void  run() {
        System.out.println(name+"跑");
    }
    //无参数构造方法
    public Pet(){
        System.out.println("无参构造方法");
    }
    //有参数构造方法
    public Pet(String a,int b){
     name=a;
     age=b;
        System.out.println("有参构造方法");
    }
    //方法的重载
    //方法重载1
    public Pet(int b,String a){
        age=b;
        name=a;
        System.out.println("有参数构造方法");
    }
    //方法重载2
    public Pet(String a,int b,String c){
       name=a;
       age=b;
       about=c;
        System.out.println("有参数构造方法");
    }
}

面向对象(2)

对象与引用; static关键字; 代码块;包;访问权限修饰符;封装; this关键字


面向对象(3)

||继承||方法重写||类之间关系::关联,依赖||抽象类||接口||多态||向上,向下转型||final关键字||


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小智RE0

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值