面向对象思想概述
Java是一种面向对象的高级编程语言。
面向对象:是用代码去高度模拟现实世界的事物,从而让软件为任务处理业务,为人类服务。
高级语言:代码看起来很像人类的自然语言。
面向对象最重要的两个概念:类和对象。
类是相同事物共同特征的描述。类只是学术上的一个概念并非真实存在的,只能描述一类事物。
对象:是真实存在的实例。 实例==对象。
结论:有了类和对象就可以描述万千世界所有的事物。
必须先有类才能有对象。
面向对象的三大特征:封装,继承,多态。
封装的哲学思维:合理隐藏,合理暴露。
封装最初的目的:提高代码的安全性和复用性,组件化。
封装的步骤:
1.成员变量应该私有。用private修饰,只能在本类中直接访问。
2.提供成套的getter和setter方法暴露成员变量的取值和赋值。
封装实际上已经成为了Java的代码规范,即使代码毫无意义我们还是要这样写。
定义类:
格式:修饰符 class 类名{
}
注意:1.类名的首字母建议大写。满足驼峰模式。 StudentNameCode
2.一个Java代码文件中可以定义多个类。但是按照规范还是建议一个Java文件定义一个类。
3.一个Java代码文件中,只能有一个类是用public修饰的,
而且public修饰的类名必须成为当前Java代码的文件名称。
类中的成分
类中的成分:有且仅有五大成分(五大金刚)
修饰符 class 类名{
}
类中有且仅有这五种成分,否则代码报错!
注意:只要不是这5大成分放在类下就会报错
构造器
格式:修饰符 类名(形参列表){
}
作用:初始化类的一个对象返回。
构造器的分类:无参数构造器,有参数构造器。
构造器的注意点:一个类默认自带一个无参数构造器,但是如果写了有参数构造器那么
默认的无参数构造器就消失了,此时如果还需要用无参数构造器就需要自己从新写一个。
构造器初始化对象的格式:
类名 对象名称 = new 构造器
Student s = new Student()
无参数构造器的作用:初始化一个类的对象(使用对象的默认值初始化)返回。
有参数构造器的作用:初始化一个类的对象(可以在初始化对象的时候为对象赋值)返回。
this关键字
this关键字的作用:
this代表了当前对象的引用。
this关键字可以用在实例方法和构造器中。
this用在方法中,谁调用这个方法,this就代表谁。
this用在构造器,代表了构造器正在初始化的那个对象的引用。
案例
class Student{
private String name ;
public Student(){
}
public Student(String name){
this.name = name ;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
static关键字
引入:
我们之前定义了很多成员变量(name , age , sex)
其实我们只写了一份,但是发现每个对象都可以用,就说明
Java中这些成员变量或者方法是存在所属性的。
有些是属于对象的,有些是属于类本身的。
Java是通过成员变量是否有static修饰来区分是类的还是属于对象的。
static == 静态 == 修饰的成员(方法和成员变量)属于类本身的。
按照有无static修饰,成员变量和方法可以分为:
成员变量:
(1)静态成员变量(类变量):
有static修饰的成员变量称为静态成员变量也叫类变量,属于类本身的,
直接用类名访问即可。
(2)实例成员变量
无static修饰的成员变量称为实例成员变量,属于类的每个对象的,
必须用类的对象来访问。
成员方法:
(1)静态方法
有static修饰的成员方法称为静态方法也叫类方法,属于类本身的,
直接用类名访问即可。
(2)实例方法
无static修饰的成员方法称为实例方法,
属于类的每个对象的,必须用类的对象来访问。
小结:
成员变量有2种
-- 有static修饰的属于类叫静态成员变量,与类一起加载一次,直接用类名调用即可。
-- 无static修饰的属于类的每个对象的叫实例成员变量,
与类的对象一起加载,对象有多少个,实例成员变量就加载多少份。必须用类的对象调用。
成员方法有2种:
-- 有static修饰的属于类叫静态方法,直接用类名调用即可。
-- 无static修饰的属于类的每个对象的叫实例方法,必须用类的对象调用。
成员变量的分类和访问
按照有无static修饰成员变量分为:
(1)静态成员变量:有static修饰,属于类本身与类一起加载一次,直接用类名访问即可。
(2)实例成员变量:无static修饰,属于类的每个对象的,必须先创建对象,再用对象来访问。
成员变量的访问语法:
静态成员变量访问:
类名.静态成员变量。
对象.静态成员变量。(不推荐)
实例成员变量的访问:
对象.实例成员变量。
小结:
静态成员变量有static修饰,属于类本身,与类加载一次,因为只有一份所以可以被类和类的对象共享访问。
注意:不建议用对象访问静态成员变量,静态成员变量直接用类名访问即可!!!
实例成员变量,无static修饰,属于类的对象的,必须先创建对象,然后用对象来访问!