java入门一DAY09------java 面向对象全面总结

来源:互联网 发布:淘宝ifashion怎么报名 编辑:程序博客网 时间:2024/05/17 02:57


面向对象

面向对象,object oriented,OOP

思想:将相关的数据和方法整合到一起,组成一种新的复合型类型,然后

使用新创建的复合数据类型作为项目基础


面向过程:强调功能的行为,一种过程,先做..接着...最后做(执行者)

面向对象:将具体的功能进行封装,强调的是具备某种功能和结果,直接使用即可(管理者)


三大特征:

封装Encapsulation

继承Inheritance

多态Polymorphism


类(class) 是java语言的最小编程单位,也是实现设计和时间java程序的基础

类是一组失误共有的特征和功能的描述,类是对一组失误的总体描述,是按照面向对象

技术进行设计时的最小单位,也是组成项目的最基本的模块。类的概念是抽象的,类似于建筑设计中的图纸,

对于实现需要代码的具体内容的抽象,类只包含框架结构,而不包含具体的数据,

类代表的是总体,而不是某个特定的个体。


类是抽象的,对象是具体的,实实在在的。


类的定义:

[修饰符] class 类名{

1-n个构造方法;

0-n个字段;

0-n个方法;

}

定义类,其实就是定义类里面的对象


对象包含:

状态:属性

功能:行为(方法)

通过类来描述对象

状态-------成员变量

功能、行为----方法;


class Person{

//属性

private String name;

private int age;

private int sal;

//方法

public void show(){

System.out.println("资料:"+name+age+sal);

}

}


构造方法:用来构造类的实例(每一个类都有一个默认的构造方法,可以使用new条用)

字段:类或对象所包含的数据,对类状态的一种描述

方法:类或对象的特征或行为


作用

给类的字段进行初始化,可以用来创建对象


特点:

方法名与类名相同

不用定义返回值类型

不需要写return语句


默认构造方法的特点

多个构造方法是以重载的形式存在的


构造方法的重载:(需要那个就去调用那个)

this([实参]);调用当前类的构造方法

注:this([实参]);必须放在构造器的第一行

对象产生的格式:

类名称 对象名=new 类名称();

实际上是一个构造方法,并且是非私有的构造方法

如 CellPhone cp=new CellPhone();


clss Preson{

//属性

private String name;

private int age;

private int sal;

//方法

public void show(){

System.out.println("个人资料:"+name+age+sal);

}

public Preson(String name){

super();

this.name=name;

}

public Preson(String name,int age){

super();

this.name=name;

this.age=age;

}

public Preson(String name,int age,int sal){

super();

this.name=name;

this.age=age;

this.sal=sal;

}

}


Static 关键字

Static特点

1 随着类的加载而加载

2 优先于对象存在

3 被所有的对象所共享

4 可以直接被类名调用

使用注意

1 静态方法智能访问静态成员

2 非静态成员可以访问静态成员

3 静态方法中不可以使用this super关键字

4 主方法main是静态的可以利用类名去调用静态的main方法,但要注意这回导致死循环

以及导致内存溢出,jvm自动停止!


public static void main(String [] args){}

详细说明

用static修饰的成员表示它属于这个类共有,而不是属于该类的单个实例

static 修饰的字段==类字段

static 修饰的方法==类方法

没有使用static修饰的字段和方法,成员属于类的单个实例,不属于类。

类和实例访问字段和方法的语句

访问类成员:类.字段类.方法

访问实例成员:实例.字段实例.方法

总结

static 修饰的字段和方法,即可以通过类调用,也可以使用实例调用

没static修饰的字段和方法,只能使用实例来调用(建议使用:类名来调用;其实在底层对象调用类成员,也会转换类名调用)

static 关键字不能与 this super同时使用

1 main 因为是static静态的,不能指示新创建的类和父类

2 this 用于调用本类相应的构造函数

3 super 用于调用父类相应的构造函数

4 this.后跟方法或属性 指示本类的方法或属性

5 super.后跟方法或属性(父类中指明的public protected)


调用父类方法该边变量就只能该边父类里面的此变量,为而不能改变子类里面的变量时因为

调用父类的方法改变的变量只能是父类是必然,因为父类中不存在子类中所定义的子类变量,因此只能改变父类中的变量


匿名对象

一个没有名字的对象,创建了一个对象出来,没有赋给一个变量;

特点

对方法或字段只进行一次调用

可以作为实际参数进行传递

只在堆里面开辟存储区域

只能使用一次,使用完后就被销毁


new Person();表示匿名对象,没有名字的对象

new Person().age=17;使用一次之后就被销毁了


this关键字

特点:this表示当前对象

当前对象指目前正在调用的实例成员对象

谁调用了方法,谁就是当前的对象


什么时候使用this关键字呢

1 方法间的互相调用

 this.字段

2 构造器中的相互调用,但是此时this([参数])必须写在构造方法的第一行

this不能再static修饰的方法里和pubulic修饰的代码里


构造方法中的:

this.name=name;


面向对象---封装


封装的两个含义:

1 把对象的状态和行为看成一个统一的整体,将二者存放在一个独立的模块中

2 把字段和方法定义在一个类中,并保证外界不能任意更改其内部的字段值,也不允许任意

   调动其内部的功能方法


封装的机制在程序中的体现是:把描述对象的状态(属性)用字段表示,描述对象的行为用方法表示,

把字段和方法定义在一个类中,并保证外界不能任意更改其内部的字段值,也不允许任意调动

其内部的功能方法。


程序中的一种体现:通常将类中的成员变量私有化(private),通过对外提供的方法(setXxx,getXxx),可以

对该变量(xxx)进行访问。

boolean 类型的变量没有getXxx,只有isXX;


package com.itheima;//使用java5中的数组新特性 实现如for each遍历的方式输出数组元素public class Test9910{private String name;//类中的成员变量 一般私有化private int age;private int sal;public String getName(){//对外提供方法return name;}public void setName(String name){this.name=name;}public int getAge(){return age;}public int getSal(){return sal;}public void setAge(int age){this.age=age;}public static void main(String[] args){System.out.println("录入:");}}









0 0
原创粉丝点击