博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
面向对象
阅读量:4658 次
发布时间:2019-06-09

本文共 3668 字,大约阅读时间需要 12 分钟。

面向对象

1、类与对象概念

(1)Java中最基本的单位是类

成员变量:就是事物的属性(就是名词)

成员方法:就是事物的行为(就是动词)

(2)定义类就是定义类的成员

成员变量:和以前定义变量是一样的,但是位置变了,在类中,方法外

成员方法:和以前定义方法一样,去掉static

(3)概念

类:是一组相关的属性和行为的集合

对象:是该类事物的具体体现

举例:类  学生

      对象  具体的某个学生就是一个对象

(4)特征

封装、继承、多态

2、学生类的定义

/** * 学生类 * 属性:姓名,年龄,性别 * 行为:学习,睡觉 */class Student{    String name;        //姓名    int age;            //年龄    int sex;            //性别        public void study(){        System.out.println("学习的方法");    }        public void sleep(){        System.out.println("睡觉的方法");    }}

3、手机类的定义

/** * 手机类 * 属性:品牌(brand),价格(price) * 行为:打电话(call),发信息(sendMessage),玩游戏(playGame) */class Phone{    String brand;    int price;        public void call(){        System.out.println("打电话");    }        public void sendMessage(){        System.out.println("发信息");    }        public void playGame(){        System.out.println("玩游戏");    }}

4、学生类的使用

(1)使用对象

创建对象并使用,格式:类名 对象名 = new 类名();

(2)使用成员变量

对象名.变量名

(3)使用成员方法

对象名.方法名(……)

public static void main(String[] args) {        //创建对象格式:类名 对象名 = new 类名();        Student s = new Student();                //使用成员变量:对象名.变量名        s.name = "lc";        s.age = 22;        s.sex = "女";        System.out.println(s.name+","+s.age+","+s.sex);                //使用成员方法:对象名.方法名(……)        s.study();        s.sleep();    }    }class Student{    String name;        //姓名    int age;            //年龄    String sex;            //性别        public void study(){        System.out.println("学习的方法");    }        public void sleep(){        System.out.println("睡觉的方法");    }}

5、手机类的使用

public static void main(String[] args) {        //创建对象格式:类名 对象名 = new 类名();        Phone p = new Phone();                //使用成员变量:对象名.变量名        p.brand = "vivoxplay5";        p.price = 2990;        System.out.println(p.brand+","+p.price);                //调用成员方法:对象名.方法名(……)        p.call();        p.sendMessage();        p.playGame();    }    }class Phone{    String brand;    int price;        public void call(){        System.out.println("打电话");    }        public void sendMessage(){        System.out.println("发信息");    }        public void playGame(){        System.out.println("玩游戏");    }}

6、成员变量和局部变量的区别

(1)在类中的位置不同

成员变量:在类中,方法外

局部变量:在方法定义中或者方法声明上

class Phone{    String brand;  //成员变量        public void call(int x){        int a= 10;     //x和a都是局部变量    }}

 

(2)在内存中的位置不同

成员变量:在堆内存中(成员变量属于对象,对象进堆内存)

局部变量:在栈内存中(局部变量属于方法,方法进栈内存)

(3)生命周期不同

成员变量:随着对象的创建而存在,随着对象的消失而消失

局部变量:随着方法的调用而存在,随着方法的调用完毕而消失

(4)初始化值不同

成员变量:有默认初始化值

局部变量:没有默认初始化值,必须定义,赋值,然后才能使用

注意事项:

  • 局部变量名称可以和成员变量名称一样,在方法中使用的时候,采用的是就近原则。
  • 基本数据类型变量包括:byte,short,int,long,float,double,boolean,char
  • 引用数据类型变量包括:数组,类,接口,枚举

7、方法的形式参数是类名时,调用的方法

public static void main(String[] args) {        print(10);                Student s = new Student();  //创建对象,并将对象的地址赋值给s        print(s);}        public static void print(int x){  //基本数据类型当做形式参数        System.out.println(x);    }        public static void print(Student stu){  //引用数据类型当做形式参数        stu.name = "lc";        stu.age = 22;        stu.speak();    }    }class Student{    String name;    int age;        public void speak(){        System.out.println(name+"..."+age);    }}

8、匿名对象的概述和应用

(1)概述:没有名字的对象

public static void main(String[] args) {        /*Car c1 = new Car();          m(c1);*/        m(new Car());                        /*Car c2 = new Car();          m(c2);    */        m(new Car());  //匿名对象可以当做参数传递            }        //抽取方法提高代码的复用性    public static void m(Car cc){        cc.color = "red";        cc.num = 8;        cc.run();    }}class Car{    String color;  //颜色    int num;  //轮胎数量        public void run(){        System.out.println(color+"..."+num);    }}

 

转载于:https://www.cnblogs.com/lc1997/p/10685303.html

你可能感兴趣的文章
面向对象初识
查看>>
Word 2010中查找和替换功能高级技巧(转)
查看>>
优先队列
查看>>
一起学wp7 XNA游戏开发
查看>>
堆内存破坏检测实战--附完整调试过程
查看>>
【knockoutjs】 Computed VS Pure Computed 区别
查看>>
JS向数组中添加/删除元素
查看>>
House Robber
查看>>
Best Time to Buy and Sell Stock II
查看>>
函数参数按值传递
查看>>
前端微应用:前端大应用拆分为多个小应用(?前端 nginx?)
查看>>
Codeforces Round #574 (Div. 2)
查看>>
洛谷上传数据指南
查看>>
搜索进阶课件,视频,代码(状态压缩搜索,折半搜索,dfs,bfs总结)
查看>>
第一类和第二类Stirling数
查看>>
造题目数据的觅食指南
查看>>
银联高校极客挑战赛 初赛 第一场
查看>>
2019银联高校极客挑战赛 复赛
查看>>
银联高校极客挑战赛 初赛 第二场
查看>>
windows更改文件打开方式
查看>>