------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
java面向对象基础
面向对象(Object-Oriented,简称OO)就是一种常见的程序结构设计方法。
面向对象思想的基础是将相关的数据和方法放在一起,组合成一种新的复合数据类型,然后使用新创建的复合数据类型作为项目的基础。
面向对象是一个很抽象的概念,它相对面向过程而言。过程与对象都是一种解决问题的思想。
面向过程:强调的是功能行为,一种过程,先干啥,再干啥;
面向对象:将功能封装到对象里,强调的是具备某功能的对象;
按照面向对象的思想,可以把任何的东西看做对象!
按照面向对象技术进行设计时最小的单位,也是组成项目的最基本的模块。类的概念是抽象的,类似于建筑设计中的图纸,是对于现实需要代表的具体内容的抽象。类只包含框架结构,而不包含具体的数据。所以类代表的是总体,而不代表某个特定的个体。
类的定义:
[修饰符] class 类名{
1~n个构造方法;
0~n个字段;
0~n个方法
}
例子:
class Myclass {
Myclass(){//默认构造函数
}
Myclass(String name){//有参构造函数
this.name = name;
}
private int age;//字段
private String name;//字段
public void function(){//成员函数
System.out.println("成员函数");
}
}
构造方法:
用来构造类的实例(每一个类都默认有一个无参的构造方法,得使用new调用)
字段:类或对象所包含的数据,对类状态的一种描述;
方法:类或对象的特征或行为
作用:给类中的字段进行初始化,可以用来创建对象。
特点:方法名与类名相同
不用定义返回值类型 不需要写return语句
对象的产生格式:类名称 对象名 = new 类名称();
如:
Myclass myclass = new Myclass();
调用方法的另一种表现形式:匿名对象
new Myclass().age = 12;
static关键字:
特点:
随着类的加载而加载
优先于对象存在
被所有对象所共享
可以直接被类名调用
使用注意:
静态方法只能访问静态成员
但是非静态成员可以访问静态成员;
静态方法中不可以使用this,super关键字
主方法(main)是静态的(可以利用类名去调用静态的main方法,很正常!但是会陷入死循环,导致内存溢出,jvm自动停止!)
public static void main(String[] agrs){}
总结:
static 修饰的字段和方法,既可以通过类调用,也可以使用实例调用;没static修饰的字段和方法,只能使用实例来调用(建议使用:类名来调用; 其实在底层,对象调用类成员,也会转换类名调用)
static关键字不能与this,super同时连用!
this关键字:
特点:this表示当前对象。
当前对象 : 当前正在调用实例成员的对象
this关键字调用时机:方法间的相互调用;
this.字段;
构造器中相互调用,但是此时this([参数])必须写在构造方法第一行。
this不能用在static修饰的方法里和static修饰的代码块里;
如:构造方法中的this.name = name;