首页 > 代码库 > 第5篇-JAVA面向对象Ⅰ
第5篇-JAVA面向对象Ⅰ
第5篇-JAVA面向对象Ⅰ
每篇一句 :面向对象面向君,不负代码不负卿
初学心得: 代码虐我千百遍,我待代码如初恋
(笔者:JEEP/711)[JAVA笔记 | 时间:2017-04-03| JAVA面向对象 Ⅰ]
1.JAVA作为一种面向对象语言,具有以下基本概念:
● 多态
● 继承
● 封装
● 抽象
● 类
● 对象
● 实例
● 方法
● 重载
2.面向对象
什么是面向对象?:
面向对象是一种编程思想
通俗的说:面向对象是一种思考问题的思维方式为什么使用面向对象以及它的作用
计算机语言为了更好的去描述现实生活中的事物,按照生活中的思考方式来定义,这样我们使用起来会更加方便
作用:将功能封装到对象里,强调的是具备某功能的对象;面向对象的三个特征:
1.封装(Encapsulation)
2.继承(Inheritance)
3.多态(Polymorphism)
3.JAVA类和对象
类与对象的概念
● 类:类是一个模板,它描述一类对象的行为和状态。
(1).什么是类?类是分类和类别的意思
通过分类,可以区别不同的事物种类,
类是一组具有共同特性(属性)与行为(方法)的事物集合(2).类与对象之间的关系
● 对象:对象是类的一个实例(对象不是找个男/女朋友),而是有状态和行为
例如,一只猫咪是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等
类表示一个共性的产物,是一个综合的特征,是一个个性的产物,也是一个个体的特征
类由属性和方法组成
属性:相当于一个个的特征
方法:相当于人的一个个的行为,如,说话,吃饭…类的定义格式
1./** 2.*类的定义格式代码 3.**/ 4.[修饰符] class 类名{ 5. 1~n个构造方法; 6. 0~n个字段; 7. 0~n个方法; 8.} 9./** 10.*定义一个Demo类 11.*类名和方法名:类名 首字母大写 方法名首字母小写 12.**/ 13.class Demo{ 14. String str = "Good"; //成员变量,也成为字段,类或对象所包含的数据,对类状态的一种描述 15. //方法,相当于类或对象的特征或行为 16. public void show(){ 17. System.out.println("输出"+str); //执行输出语句 18. } 19.} 20.一个类可以包含以下类型变量: 21.● 局部变量:在方法、构造方法或者语句块中定义的变量被称为局部变量 22.变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁。 23.● 成员变量:成员变量是定义在类中,方法体之外的变量。这种变量在创建对象的时候实例化 24.成员变量可以被类中方法、构造方法和特定类的语句块访问。 25.● 类变量:类变量也声明在类中,方法体之外,但必须声明为static类型对象的定义、创建以及使用格式
对象是根据类创建的,在Java中,使用关键字new来创建一个新的对象,创建对象需要以下三步:
● 声明:声明一个对象,包括对象名称和对象类型。
● 实例化:使用关键字new来创建一个对象。
● 初始化:使用new创建对象时,会调用构造方法初始化对象。一个类要想真正的进行操作,则必须依靠对象,对象的定义如下:
1.类名称 对象名称 = new 类名称(); 这样的格式就产生了对象如果想要访问类中的属性和方法(方法的定义),,则可以依靠以下语法:
1.1.访问类中的属性:对象.属性; 2.调用类中的方法: 对象.方法();在JAVA中对象声明有两个含义:
1.1.声明对象:personper = null; //表示声明了一个对象,但是此对象无法使用,per没有具体的内存指向 2.2.实例化对象:per = new pcrson();//表示实例化了对象,可以使用 3.类名 对象名称 = new 类名(); //两步操作 4.类名 对象名称 ; //声明对象 5.对象名称 = new 类名(); //实例化对象 6.例:Demo demo = new Demo(); 7.通过"对象名.对象成员"的方式来操作对象中的内容
4.static关键字
1.static关键字
使用static关键字修饰一个属性,声明为static变量实质上就是全局变量
使用static关键字修饰一个方法,在一个类中定义一个方法为static
无需本类的对象即可调用此方法
使用static关键字修饰一个类2.内存结构分析
存在方法区,静态数据不属于对象,属于类,直接用类名调用属性,而不是用对象调用属性
无法从静态上下文中引用非静态:
静态属性和方法在类加载后就存到方法区内存中,此时,还没有产生对象,而普通方法和属性
属于对象,所以不能调用3.声明static的方法限制
仅能调用其他的static方法
只能访问static数据
不能以任何方式引用this或superstatic关键字特点:
随着类的加载而加载,优先于对象存在,被所有对象所共享,可以直接被类名调用
static关键字使用注意:
静态方法只能访问静态成员,但是非静态成员可以访问静态成员;
静态方法中不可以使用this,super关键字1.主方法(main)是静态的 2.public static void main(String[] agrs){}static关键字的使用:
1.用static 修饰的成员表示它属于这个类共有,而不是属于该类的单个实例 2.static 修饰的字段 == 类字段 3.static 修饰的方法 == 类方法
5.new关键字
new 表示创建一个对象,表示实例化对象,表示申请内存空间
什么是实例化:
代码在类中,类是抽象的,不是具体的,代码都是针对抽象来编写的,但是程序运行起来就需要用到具体的对象去执行
在编写完类以后,具体化成为实实在在的对象,实例化对象就是把类具体化为一个对象的过程
6.匿名对象
匿名对象就是定义一个没有名称的对象
该对象特点是只能使用一次,该对象会直接在堆中开辟内存空间
该对象使用后会成为垃圾对象,被GC回收1.new 类名("").方法名(); //生成匿名对象,只能使用一次匿名对象特点:
1.对方法或字段只进行一次调用; 2.new Car().show(); 3.new Car().run(); 4.可作为实际参数进行传递,只在堆内存中开辟空间,而没有在栈内存的引用 5.public void show(Car c){ } 6.new Car().show(new Car());
7.对象的引用
1. //1. 创建了一个Demo1 的实例(对象) 2.Demo1 demo = new Demo1();//2. 把这个Demo 实例赋给 demo 变量 3. demo.brand="HelloWorld"; //引用变量指向对象,也就是说引用型变量存放的仅仅是一个引用
8.this关键字
this关键字特点:this表示当前对象。
调用类中的属性、调用类中的方法或构造方法、表示当前对象
当前对象 ←→ 当前正在调用实例成员的对象
换言之:谁调用了方法,谁就是当前对象。
什么时候使用this关键字呢?
1.方法间的相互调用; 2.this.字段;
3.构造器中相互调用,但是此时this([参数])必须写在构造方法第一行。
4.this不能用在static修饰的方法里和static修饰的代码块里;
9.import语句
JAVA包主要用来对类和接口进行分类
当开发Java程序时,可能编写成百上千的类,因此很有必要对类和接口进行分类
Import语句通俗的说就是引入或导入的意思
例如,下面的命令行将会命令编译器载入java_installation/java/io路径下的所有类1.import java.io.*; //*星号表示寻找某个包下被使用到的全部类
10.JAVA常用包介绍
1.java.lang : 语言核心类,系统自动导入 2.java.util : java 工具类、集合框架类和接口 3.java.net : 网络编程接口和类 4.java.io : 流的接口和类 5.java.text : java格式化相关类 6.java.sql : jdbc相关接口和类 7.java.awt : 抽象窗口工具集相关接口和类 8.java.swing :图形用户界面相关接口和类(可跨平台)
11.JAVA访问修饰符
修饰符 类内部 同一个包 子类 任何地方 private default protected public private(私有的):类访问权限:本类内部可以访问,不能继承到子类
default(默认的):什么都不写,包访问权限:本类内部可以访问,同包其他类也可以访问,同包可继承
protected(保护的):子类访问权限:本类内部可以访问,不同包的子类也可以访问,同包其他类也可以访问,能继承到子类
public(公共的):公共访问权限:任何地方都可以访问,能继承到子类
12.构造方法
什么是构造方法?构造方法就是类构造对象时调用的方法,用于对象的初始化工作
构造方法是实例化一个类的对象时,也就是new的时候,最先调用的方法
构造方法的定义:是在类中定义,定义格式,方法名称与类名相同,无返回值类型声明
对象实例化语法:1.Demo2 de = new Demo2(); //new Demo2后面有括号,带括号表示调用了方法,此时调用的方法就是构造方法每个类都有构造方法,如果没有显式地为类定义构造方法,Java编译器将会为该类提供一个默认构造方法
在创建一个对象的时候,至少要调用一个构造方法,构造方法的名称必须与类同名,一个类可以有多个构造方法对象的产生格式:
1.类名称 对象名 = new 类名称(); 2.因为有(),所以是方法,实际上它就是构造方法,并且是非私有的构造方法。 3.如:Demo3 de = new Demo3();构造方法特点:
方法名与类名相同,不用定义返回值类型 ,不需要写return语句
构造方法作用:给类中的字段进行初始化,可以用来创建对象
初学(面向对象) Ⅰ 难点: ★★★★★
希望每一篇文章都能够对读者们提供帮助与提升,这乃是每一位笔者的初衷
感谢您的阅读 欢迎您的留言与建议
新浪官方微博: @中國熱點影視傳媒
Github博客: https://github.com/jeep711/jeep711.github.io
Blog Garden:http://www.cnblogs.com/JEEP711/
W3C/Blog:http://www.w3cschool.cn/jeep711blog/
CSDN/Blog:http://blog.csdn.net/jeep911
51CTO/Blog:http://jeep711.blog.51cto.com/
码云:http://git.oschina.net/JEEP711/jeep711.github.io
邮箱: jeep711@qq.com,JEEP-711@outlook.com
本文出自 “JEEP711” 博客,转载请与作者联系!
第5篇-JAVA面向对象Ⅰ