Java面向对象

面向对象思想概述

  • 面向过程思想
    • 强调的过程,即第一步,第二步...
  • 面向对象思想
    • 强调对象,对象里面封装了第一步,第二步
  • 两种思想比较
    • 举例:买煎饼果子吃
      • 面向对象
        • 找会摊煎饼的大妈(大妈提供怎么摊)-给钱-吃
      • 面向过程
        • 学习摊煎饼技术-买材料-开始摊-吃
  • 面向对象思想特点
    • 更符合我们思想习惯:其实就是"懒人思想",把事情交给别人去做
    • 将复杂的事情简单化:对我(调用者)来说,简单化,去调对象即可;对象也被复用,其他人也可用
    • 将我们从执行者变成了指挥者: 角色发生了改变
  • 面向对象开发
    • 就是不断的创建对象,使用对象,指挥对象做事情.
  • 面向对象设计
    • 其实就是在管理和维护对象之间的关系.
  • 面向对象特征
    • 封装(encapsulation)
    • 继承(inheritance)
    • 多态(polymorphism)

类与对象概述

  • 编程的作用
    • 把我们日常生活中的实物,事件等用编程语言描述出来
  • 如何描述现实世界实物
    • 属性 事务的描述信息(名词)
    • 行为 事务能够做什么(动词)
  • Java中最基本的单位是类,class
    • 成员变量:事务的属性
    • 成员方法:事务的行为
  • 定义类,就是定义类的成员(成员变量,成员方法)
  • 类和对象的该你
    • 类:是一组相关的属性和行为的集合
    • 对象:是该类事务的具体体现
    • example
      • 类:学生
      • 对象:具体的某个学生,张三
[code lang=java] public class Student{ private String name; private int age; private String gender; public Student(String name,int age,String gender){ this.name=name; this.age=age; this.gender=gender; } public void study(){ System.out.println(name+"("+age+"-"+gender+")"+":学习"); } public void play(){ System.out.println("玩耍"); } } [/code] [code lang=java] public class StudentTheest{ public static void main(String[] args){ Student student=new Student("刘航",18,"男"); student.study(); } } [/code]

构造方法

  • 作用
    • 给对象的数据(属性)进行初始化
  • 格式特点
    • 方法名与类名完全一致
    • 没有返回值类型

成员变量与局部变量区别

  • 在类中的位置不同
    • 成员变量:在类中方法外
    • 局部变量:在方法定义中或者方法声明上
  • 在内存中的位置不同
    • 成员变量:在堆内存(成员变量属于对象,对象在堆内存)
    • 局部变量:在栈内存(局部变量属于方法,方法进栈内存)
  • 生命周期不同
    • 成员变量:随着对象的创建而存在
    • 局部变量:随着方法的调用(进栈)而存在,调用完毕(弹栈)而消失
  • 初始化值不同
    • 成员变量:有默认初始化值
    • 局部变量:没有默认初始化值,必须定义,赋值,然后才能使用
  • 注意事项
    • 局部变量名称可以和成员变量一样,方法中使用时,就近原则
    • 基本数据类型变量:8中基本
    • 引用数据类型变量:数组,类,接口,枚举

封装

  • 封装概述
    • 封装是指隐藏对象的属性和实现细节,仅对外提供公共访问方式
  • 封装好处
    • 隐藏实现细节,提供公共的访问方式
    • 提高代码的复用性
    • 提高安全性
  • 封装原著
    • 将不需要对外提供的内容隐藏起来
    • 把属性隐藏,提供公共的方法对其访问

static关键字

  • static特点
    • 随着类的加载而加载
    • 优先于对象而存在
    • 被类的所有对象共享
      • 例如,同一个班级的学生公用一个班级编号
      • 如果某个成员变量是被所有对象共享的,则应该定义为静态的.
    • 可通过类名调用
      • 推荐通过类名调用,也可通过对象调用
  • 注意事项
    • 静态只能访问静态
    • 在静态方法中是没有this关键字的
      • 静态是随着类的加载而加载的,this是随着对象的创建而存在;静态比对象先存在
  • 静态变量和成员变量
    • 静态变量属于类,存于方法区的静态区,也称为类变量;成员变量属于对象,存于堆内存,也称为实例变量
    • 静态可通过类名,也可通过对象调用;成员变量只能通过对象名调用

mian方法详解

[code lang=java] public class Demo{ public static void main(String[]args){ //public:被jvm调用,权限足够大 //static:被jvm调用,不需要创建对象,直接类名来调用即可 //void:不需要返回值 //main:规定,被jvm识别;**main不是关键字** for(int i=0;i<args.length;i++) System.out.println(args[i]); } } [/code]

转载于:https://my.oschina.net/husthang/blog/840598

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值