java面向对象(30天速成java)

目录

一、面向对象

二、对象

2.1什么是对象

 2.2对象有什么

三、类

3.1创建类

四、创建对象 

五、类和对象的关系 

六、实例变量 

6.1实例变量和局部变量的区别

七、实例方法

7.1实例方法

7.2方法的重载

八、构造方法 

8.1构造方法的概念

8.2对象创建过程

 8.3对象的内存分配

8.4构造方法重载 

 九、this关键字


一、面向对象

面向对象程序设计(Object Oriented Programming)

        面向过程 C

                 着重于“过程”

                 优点:性能高

                 缺点:耦合度高、不易于扩展、不易于维护

        面向对象 Java

                着重于“对象”

                优点:耦合度低、易于扩展、易于维护

                缺点:性能低

二、对象

2.1什么是对象

具有明确的行为(方法)和特征(属性|变量)的实体

 2.2对象有什么

行为 : 指的是方法,一般都是动词。代表对象能干什么

特征: 指的是属性,一般都是名词。代表对象有什么

三、类

3.1创建类

类的由来:类是由多个具有相同特征和行为的对象抽取出来的

如果定义一个类:

        1、确定类名

        2、编写成员变量

                语法:数据类型 属性名;

        3、编写成员方法

                语法:public 返回值类型 方法名(形参){

                                        //方法的主体

                                }

注意:不要书写static

代码展示:

public class Student {//类:对象的模板
    //编写属性(变量)  成员变量
    String name;
    int age;
    double money;
    //编写方法
    //从面向对象阶段起,方法都不要加static
    public void play(){
        System.out.println("学生玩儿。。。");
    }
    public void study(){
        System.out.println("学生学习。。。");
    }
}

四、创建对象 

语法:类名 对象名 = new 类名();

例如:Student stu = new Student();

代码展示:

public class TestStudent {
    public static void main(String[] args) {
        //创建Student对象
        Student stu1=new Student();
        Student stu2=new Student();
        //对象有属性(对象赋予基本信息,使用对象的基本信息),对象有方法(为了完成你的功能)
        //使用对象 使用对象中的属性,对象中的方法
        stu1.name="wang";
        stu1.age=18;
        stu1.money=3000;
        System.out.println("姓名为"+stu1.name);
        System.out.println("年龄为"+stu1.age);
        System.out.println("余额为"+stu1.money);

        //调用对象的方法
        stu1.study();
        stu2.name="li";
        stu2.age=20;
        stu2.money=9000;
        System.out.println("姓名为"+stu2.name);
        System.out.println("年龄为"+stu2.age);
        System.out.println("余额为"+stu2.money);
        stu2.play();

    }
}

五、类和对象的关系 

类:定义了对象应具有的特征和行为,类是对象的模板

对象:拥有多个相同特征和行为的实体,对象是类的实例

面向对象就是从具体到抽象,再从抽象到具体的过程

六、实例变量 

6.1实例变量和局部变量的区别

成员变量(实例变量):定义在类的里面方法的外面的变量称之为成员变量
局部变量:定义在方法的内部的变量称之为局部变量


* 成员变量和局部变量的区别
*      1、位置不同
*          成员变量:在类中,方法外
*          局部变量:在方法内部
*      2、初始值不同(变量必须要初始化才能使用)
*          成员变量:系统会赋予默认值(与之前讲的数组一致)
*          局部变量:没有默认值
*      3、作用域不同
*          成员变量:在类中都可以使用
*          局部变量:只能在作用域中使用(在它所在的{}中)
*      4、重名问题
*          成员变量不能重名,局部变量在不同的作用域中是可以重名的
*          如果当局部变量和成员变量重名的时候,java中遵循就近原则
*      5、生命周期不同
*          成员变量:变量会随着对象的销毁而销毁。对象什么时候销毁呢?(Java中GC垃圾回收机制)
*          局部变量:当变量出了作用域就会被销毁

七、实例方法

7.1实例方法

实例方法:当对象被创建的时候产生(不使用static修饰)

7.2方法的重载

方法重载:在一个类中的出现同名方法称之为方法的重载

方法重载的要求:

        1、同名不同参(参数类型、个数、顺序)

        2、与返回值,访问修饰符无关

调用重载的方法会根据传递的参数不同,去执行不同的方法

重载的好处:方便、灵活、屏蔽使用差异

代码展示:

    public void work(){
        System.out.println("这是work方法默认8小时");
    }
    public void work(int hour){
        System.out.println("这是work方法工作"+hour+"个小时");
    }

八、构造方法 

8.1构造方法的概念

构造方法:类中的特殊方法,用于创建类的对象

  • 作用:创建类的对象(实例化)
  • 语法:public 构造方法名(){}
  • 构造方法名必须与类名完全一致
  • 特点:

             1、如果一个类没有编写构造方法, 那么jvm会默认提供一个无参构造方法,但是如果 一个类提供了构造方法,那么jvm就不会再提供给这个无参构造方法

             2、构造方法可以重载

             3、一个类无论提供多少个构造方法,一定要保留一个无参构造方法 场景: 给对象的属性赋值

8.2对象创建过程

 8.3对象的内存分配

 存储对象的变量p(引用)中保存对象的地址,通过变量中的地址访问对象的属性和方法。

8.4构造方法重载 

代码展示:

//编写构造方法
    public Dog(){
        System.out.println("这是Dog类的构造方法");
    }
    public Dog(String name){
        System.out.println("这是Dog类的有参构造方法");
    }



        //1、创建对象    会调用这个类的无参构造把对象创建出来
        Dog dog=new Dog();
        //1、创建对象    会调用这个类的有参构造把对象创建出来
        Dog dog1=new Dog("zhang");

 九、this关键字

this关键字:

含义:表示当前类的对象,在对象被创建的时候自动产生

作用: 可以调用本类的属性、方法、构造方法

调用本类的属性

  •         语法:this.属性名
  •         在本类中调用本类的属性this关键可以省略
  •         当前成员变量与局部变量重名的时候,this.属性名表示的是成员变量,不加this表示局部变量(就近原则)

调用本类的方法:

  •         语法:this.方法名();
  •         在本类中调用本类的方法this关键可以省略

调用本类的构造方法(只能在构造方法中使用)

  •         语法:this(构造参数);
  •         特点:

                1、避免无穷递归(构造方法循环调用)

                2、调用本类构造方法的时候,this(构造参数)必须写在构造方法的第一行

代码展示:

public class User {
    //成员变量
    String name="李四";
    //要想调用一个类的成员(变量、方法),那么必须先要创建这个类的对象
    public void m1(){
        //如何访问变量name    this表示当前类的对象    (默认加上了this关键字)
        System.out.println(this.name);//"李四"
    }
    public void m2(){
        String name="张三";
        System.out.println(name);//"张三"
        System.out.println(this.name);//"李四"
    }
    public void aa(){
        bb();
    }
    public void bb(){

    }
    public User(){
        this("jack");
        System.out.println("无参构造方法");
    }
    public User(String name){
        System.out.println("有参构造方法");
    }
}

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值