面向对象思想概述
- 面向过程思想
- 面向对象思想
- 两种思想比较
- 面向对象思想特点
- 更符合我们思想习惯:其实就是"懒人思想",把事情交给别人去做
- 将复杂的事情简单化:对我(调用者)来说,简单化,去调对象即可;对象也被复用,其他人也可用
- 将我们从执行者变成了指挥者: 角色发生了改变
- 面向对象开发
- 面向对象设计
- 面向对象特征
- 封装(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]