面向对象

面向对象

1.面向对象和面向过程的解释:

面向对象:

	找合适的人做合适的事
	
面向过程:

	亲力亲为,自力更生,体验人生乐趣

2. 类和对象

类:
	同一种事物的统称,主要描述事物的【属性】和【行为】
	
     电脑类:
			属性:	屏幕尺寸,颜色,CPU
			行为: 玩游戏,学习,看新闻
对象:
	唯一的,独立的,特殊的个体
3. Java代码中如何实现类
/*
在Java中定义类的格式:
	class 自定义类名 {
		事物的属性描述; // 变量
		事物的行为描述; // 方法
	}
*/
// 自定义一个人类 Person
class Person {
    //属性描述,这里使用【成员变量】来描述属性
   	String name; // 描述当前Person类存在name String 类型 属性
    int age;  // 描述当前Person类存在 age  int类型 属性
    char gender; // 描述当前Person类存在 gender  char类型 属性
    
    // 行为描述, 这里使用【成员方法】来描述Person类的行为 
    // 吃饭行为
    public void eat() {
        System.out.println("牛排");
    }
    
    // 睡觉行为
    public void sleep(int time) {
        System.out.println(name + "睡了" + time + "个小时")
    }
    
    // 敲代码行为
    public void coding() {
        System.out.println("bug不是程序员想要的");
    } 
    
}
4. 在Java代码中,创建对象
public class Demo1 {
	public static void main(String[] args) {
		/*
		创建一个Scanner类对象
		Scanner sc = new Scanner(System.in);
		Scanner: 类名 数据类型
		sc: 类对象,同时也是一个引用数据类型,数组名
		new: 创建对象的关键字,同时表示创建的对象内存空间是保存在内存的【堆区】
		Scanner(System.in): 【构造方法】 Constructor
		*/
        // 创建了一个Person类对象,类对象的名字叫做 p
        Person p = new Person();
        
        /*
        int[] arr = new int[10];
        arr.length 获取数组的容量
        
        . 的
        类对象.成员变量,操作类内的成员变量
        */
        p.name = "小明";
        p.age = 16;
        p.gender = '男';
        
        System.out.println("Name:" + p.name + " Age:" + p.age + " Gender:" + p.gender);
	}
}
7. 聊一聊构造方法Constructor
构造方法的作用:
	用于初始化类对象的成员变量。Constructor

问题一[了解]:
	发现代码中并没有【显式】定义构造方法,但是在代码中可以直接使用一个无参构造方法?
	这是因为Java编译器,在编译Java代码中,会给没有【显式】定义构造方法的类,提供一个当前类的无参构造方法,供调用者使用。
	
	如果在类内自己定义了一个构造方法,那么Java编译器就不会再给你提供任何构造方法
	
	借助于Java反编译工具 javap, 反编译Java文件,编译之后.class 字节码文件
	javap -c -l -private XXX.class
问题二:
	构造方法:	
    public 类名(初始化类对象需要的参数) {
        // 初始化类对象成员变量的语句
    }
	// 构造方法必须使用类名,其他成员方法绝对不允许使用类名【甲鱼的臀部 规定】
	// 构造方法可以存在多个,但是绝对不允许出现【参数类型】完全一致的方法
	// 一般情况下,在定义类时都会留有一个无参构造方法备用

问题三:
	使用无参构造方法时,成员变量的值都是多少???
	使用无参构造方法,初始化对象时,在类对象中的所有成员变量,都是对应数据类型的 “0” 值

数据类型对应的 “0” 值
	byte 0
	short 0
	int  0
	long 0L
	float 0.0F
	double 0.0
	boolean false
	char '\0'
    【所有的引用数据类型】都是 null 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值