面向对象概述
java是面向对象的高级编程语言。面向对象实现:可以简单的认为是用代码去高度模拟现实世界的事物。
面向对象中最重要的2个概念:类,对象。
类的理解
- 类是对相同事物共同属性和行为的描述。 人类、学生类、老师类、官员、商人。
简单理解:类就是对现实事物的一种描述
类的组成
- 属性(成员变量):指事物的特征,例如:人类(名称,年龄,身高,体重)
- 行为(成员方法):指事物能执行的操作,例如:人类(唱歌,跳舞)
对象
- 客观存在的事物皆为对象 ,所以我们也常常说万物皆对象。
- 对象是真实存在的实例。 对象==实例。
类的定义
类中通常能见到2种成分:
类的组成是由属性和行为两部分组成
- 属性:在类中通过成员变量来体现
- 行为:在类中通过成员方法来体现
类的定义格式:
修饰符 class 类名{
// 1、成员变量:Field(描述类或者对象的属性信息的,例如:身高,体重,名称)
// 2、成员方法: Method(描述类或者对象的行为信息的,例如:唱歌,跳舞,买票)
// 3、构造器: Constructor(初始化类的一个对象出来)
....
}
类定义的要求
1、类名首字母建议大写,满足驼峰模式,不能用关键字,必须合法标识符,且要有意义。
2、一个Java文件中可以定义多个类,但是只能有一个类是用public修饰的,而且public修饰的类名,必须成为Java代码的文件名称,否则报错!
3、一个Java代码文件中也可以没有一个类是用public修饰的,此时代码文件名称可以随意
4、但是还是建议一个java文件中只定义一个类。
例如:
public class People {
// 1、属性
String name; // 名称
int age ; // 年龄
double height ; //身高
double weight ; // 体重
// 2、行为
public void sing(){
System.out.println("唱的真好!!");
}
public void jump(){
System.out.println("跳的真美!!");
}
}
对象的创建
创建对象的格式:
类名 对象名称 = new 类名();
调用成员变量的格式:
对象名.成员变量
调用成员方法的格式:
对象名.成员方法();
public class PeopleDemo {
public static void main(String[] args) {
// 1、创建对象的格式:
// 类名 对象名称 = new 类名();
People wuHao = new People();
// 2、调用成员变量的格式:对象名.成员变量
System.out.println(wuHao.name); // null
wuHao.name = "吴昊"; // 赋值
wuHao.age = 18 ; // 赋值
wuHao.weight = 60; // 赋值
wuHao.height = 180 ;// 赋值
System.out.println(wuHao.name); // 吴昊
System.out.println(wuHao.age); // 18
System.out.println(wuHao.weight); // 60.0
System.out.println(wuHao.height); // 180.0
// 3、调用成员方法的格式:对象名称.成员方法
wuHao.sing();
wuHao.jump();
}
}
class People {
// 1、属性
String name; // 名称
int age ; // 年龄
double height ; //身高
double weight ; // 体重
// 2、行为
public void sing(){
System.out.println("唱的真好!!");
}
public void jump(){
System.out.println("跳的真美!!");
}
}
注意:对象可以直接把自己赋值给另一个对象,这个赋值的地址,其中只要修改了一个另一个也会修改。跟引用类型的数组有点像。
Student minGe = xuMin; // 把xuMin这个对象变量存储的地址赋值给了minGe变量
例子:
public class StudentDemo {
public static void main(String[] args) {
Student xuMin = new Student();
System.out.println(xuMin); // 6d03e736
xuMin.name = "徐敏";
xuMin.age = 18 ;
System.out.println(xuMin.name); // 徐敏
System.out.println(xuMin.age); // 18
xuMin.study();
xuMin.doHomeWork();
System.out.println("-----------------------------------");
Student minGe = xuMin; // 把xuMin这个对象变量存储的地址赋值给了minGe变量
System.out.println(minGe); // 6d03e736
minGe.name = "敏哥";
System.out.println(xuMin.name); // 敏哥
System.out.println(minGe.age); // 18
minGe.study();
minGe.doHomeWork();
}
}
class Student{
// a.属性(成员变量)
String name ;
int age ;
// b.行为(方法):学习
public void study(){
System.out.println("好好学习,天天向上");
}
// c.行为(方法):抄写代码
public void doHomeWork(){
System.out.println("写代码、写代码、写代码。");
}
}