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("录入:");}}
- java入门一DAY09------java 面向对象全面总结
- 黑马程序员-Java面向对象-day09
- Java面向对象入门(一)
- JAVA面向对象总结(一)
- Java面向对象总结(一)
- Java面向对象总结(一)
- 面向对象 (多态)+JAVA学习笔记-DAY09
- Java面向对象编程习题总结(一)
- Java面向对象简单总结(一)
- java面向对象总结(一)
- Java面向对象入门
- Java面向对象入门
- Java 面向对象入门
- day09-面向对象
- day09<面向对象+>
- Day09 --面向对象
- Java面向对象(一)
- java面向对象(一)
- fedora20给firefox安装flash插件
- java 调用WebService服务接口
- cocos2dx网络传输之CURL
- ubuntu下使用VNC连接树莓派raspberry
- DAY08------java数组、操作、冒泡、排序、array类、for each(全)
- java入门一DAY09------java 面向对象全面总结
- 20140403
- Nginx配置文件详细说明
- nginx.conf中文详解
- hdu 1002 A + B Problem II
- Pick numbers
- hashcode方法和equals方法
- 03自定义认证
- FKJFKJFHJGDHHGDFHKFKG