Java 面向对象基础(笔记)

A.类和对象

1.什么是对象:客观存在的事物

2. 什么是面向对象:关注的事物信息

3.类:现实生活中一类具有相同属性和行为的事物的抽象

类的特点: (1)类是对象的数据类型

                   (2)类是具有相同属性和行为的一组对象的集合

4. 什么是对象的属性:对象具有的各种特征,每个对象的每个属性都拥有特定的值

5.什么是对象的行为:对象能够执行的操作

6.类和对象的关系

类:现实生活中一类具有相同属性和行为的事物的抽象

对象:客观存在的事物(看得到摸得着)

7.类的定义

类的重要性:是Java程序的基本组成单位

类的组成:属性、行为

属性:在类中通过成员变量来体现(类中方法外的变量

行为:在类中通过成员方法来体现(和前面的方法相比去掉 static 关键字即可)

类的定义步骤:

//定义类
public class Phone {
    public static void main(String[] args){
        /*
      类的定义步骤:
      (1)定义类
      (2)编写类的成员变量
      
      (3)编写类的成员方法

      手机类:
        类名:
        手机(Phone)

        成员变量:
        String brand;
        int price;
        品牌:(brand)
        价格:(price)

        成员方法;
        打电话:(call)
        public static void call(){
        }
        发短信:(sendMessage)
        public static void sendMessage(){
        }
       */
        
        
        
    }
    public static void call(){
        System.out.println("打电话");
    }

    public static void sendMessage(){
        System.out.println("发短信");
    }
}

 8. 对象的使用

 案例:学生

注意:类定义完成之后无法直接使用,如果要使用,必须依靠对象

 

  StudentDemo()通过对象s使用了Student()类

//将学生类和学生测试类放在同一个package中

//学生类(没有main方法)
package com.itheima_02;
/*
    学生类:

 */
public class Student {
    //成员变量:
    String name;
     int age;

     //成员方法:
    public void study(){
        System.out.println("好好学习,天天向上!");
    }
    public void doHomework(){
        System.out.println("键盘敲烂,月薪过万!");
    }

}
//学生测试类(有main方法)
package com.itheima_02;
/*
    学生测试类
 */

public class StudentDemo {
    //因为是学生测试类,所以要有main方法
    public static void main(String[] args){
        //创建对象s     类名 对象名 = new 类名();
        Student s = new Student();  //StudentDemo()通过对象s使用了Student()类(类定义完成之后无法直接使用,如果要使用,必须依靠对象)
        //使用对象s     用了Student()类中的成员变量
        System.out.println(s.name + "," + s.age);
        s.name = "彭于晏";
        s.age = 18;
        System.out.println(s.name + "," + s.age);

        //成员方法:
        s.study();
        s.doHomework();

    }

}

B.对象内存图

1.对象内存图(单个对象)

 

 

 

 

 

2.对象内存图(多个对象)

C .成员变量和局部变量

成员变量:类中方法外

局部变量:方法内

区别:

D .封装

1.private 关键字

 

 2. private关键字的使用

 3. this 关键字

this.变量名 是成员变量

package myself_01;
//学生类
public class Student {
    //成员变量:
    private String name;
    private int age;
    //提供get/set方法
    public void setName(String name){
        this.name = name;       //this.name的name是成员变量; 后面的name是局部变量
    }
    public String getName(){
        return name;
    }

    public void setAge(int age){
        this.age = age;         //this.age的age是成员变量; 后面的age是局部变量
    }
    public int getAge(){
        return age;
    }
    //显示:show方法
    public void show(){
        System.out.println(name + " , " + age);
    }

}
package myself_01;
//学生测试类
public class StudentDemo {
    public static void main(String[] args){
        //创建对象
        Student s = new Student();
        //用set方法给成员变量赋值:
        s.setAge(18);
        s.setName("彭于晏");
        //显示结果
        System.out.println(s.getName() + " , " + s.getAge());
    }

}

 4. this内存原理

5.封装

E.构造方法

1. 构造方法概述

 2.构造方法的注意事项

一个类中没有给任何构造方法,系统就会给出一个默认的无参构造方法 

 

 3. 标准类制作


    package myself_02;
/*
    成员变量:
    使用private 修饰

    构造方法:
    无参构造方法
    带多个参数的构造方法


    成员方法:
    每个成员变量对于的getXxx()/setXxx()
    显示对象信息的show()
 */
public class Student {
    private  String name;
    private int age;
    //构造方法
    //无参构造方法
    public Student(){}
    //带多个参数的构造方法
    public Student(String name,int age){
        this.name = name;
        this.age = age;
    }

    //成员方法
    public void setName(String name){
        this.name = name;
    }
    public String getName(){
        return name;
    }

    public void setAge(int age){
        this.age = age;
    }
    public int getAge(){
        return age;
    }
    //显示对象信息的show()
    public void show(){
        System.out.println(name + " , " + age);
    }



}
package myself_02;
//学生测试类
public class StudentDemo {
    public static void main(String[] args){
        //创建对象s1
        Student s = new Student();
        s.setName("彭于晏");
        s.setAge(19);
        s.show();
        //创建对象s1并赋值
        Student s1 = new Student("彭于晏",18);
        s1.show();
    }

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值