面向对象(自我理解,如有错误,敬请改正):一种编程思想,从对象本身出发,实现某个功能,包含以下下几个内容:
- 对象:万物可以是对象,一本书,一个人,一台电脑。
- 方法:实现对象的某一个行为的办法,比如人会吃饭,会喝水,喝水吃饭的行为,都要在方法中实现
- 类:具有共同属性和行为的对象的集合,比如电子设备类包括手机和电脑,食物类包括馒头和包子
- 对象的属性:人的高矮胖瘦 电脑的型号 书的种类
- 类和对象的关系:类是对象的集合,对象是类中一个具体的实例
- 对象的属性具有默认值,默认值与对应的数据类型相关,具体详见下表格,在定义一下数据类型时若没有赋值,则为该数据类型的默认值
数据类型 | 默认值 |
byte | 0 |
short | 0 |
int | 0 |
long | 0 |
double | 0.0 |
float | 0.0 |
char | 空字符 |
boolean | false |
属性, 行为,和对象的关系,我们来用一段代码来帮助理解
public class Person {
public static void main(String[] args) {
sleap();
}
/**
* 昵称 (
*/
String nickname; (属性)
/**
* 性别 1代表男 0代表女
*/
int gender; (属性)
/**
* 年龄
*/
int age; (属性)
//(吃,喝,睡,都是人的一种行为,要实现这些行 为就需要方法来实现)
//属性和行为都是对象所具有的
public void eat(){
System.out.println("民以食为天");
drink();
}
public void drink(){
System.out.println("这酒怎么喝?你干了,我随意");
sleap();
}
public static void sleap(){
System.out.println("养精蓄锐");
}
}
我们创建一个Person的测试类,并调用Person中的方法
注意:如果用类名.方法名来调用非静态方法会报错
实例化对象名.方法名不会出错!!
/**
* 静态方法可以通过类名点方法名的方式调用,非静态方法不可以用类名点方法名调用<br>
* 可以通过类的实例化对象名点方法名的方式调用静态方法<br>
* 也可以通过类的实例化对象名点方法名的方式调用非静态方法<br>
*/
public class Person01Test {
@Test
public void test01(){
// 静态方法可以通过类名点方法名的方式调用
// 但是不能通过类名点方法名的方式调用非静态方法
Person.sleap();
}
@Test
public void test02(){
// 静态方法可以通过类名点方法名的方式调用
// 但是不能通过类名点方法名的方式调用非静态方法
Person.sleap();
Person person01 = new Person();
// 可以通过类的实例化对象名点方法名的方式调用静态方法
// 也可以通过类的实例化对象名点方法名的方式调用非静态方法
person01.eat();
person01.drink();
person01.sleap();
}
}
输出结果