首页 > 代码库 > 第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或super

static关键字特点: 
随着类的加载而加载,优先于对象存在,被所有对象所共享,可以直接被类名调用 
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面向对象Ⅰ