面向对象

1. 学习要求
a. 你们听不懂,哲学问题
b. 不懂不耽误写代码,读着代码就会写了
c. 所有的代码,首先理解生活逻辑,在考虑代码格式
d. 敲就完了
	十二生肖!!!
e. 利用不断的练习,形成肌肉记忆,和意识记忆
2. 生活中的面向对象
需求:
	我想吃烤羊排
	
	找一个烧烤店吃
		1. 选一个店铺,私烤者馕坑烤肉
		2. 找一个座位,点餐,馕,烤羊肉串,一斤羊排,啤酒2瓶
		3. 等
		4. 吃
		5. 结账走人
	
	自己做着吃
		1. 准备材料
			盐滩羊羊排2斤,葱姜蒜,洋葱,孜然粉,烧烤料,辣椒面
		2. 羊排切小段,葱姜蒜水,盐,洋葱,腌制30分钟
		3. 烤箱预热190度 5分钟,烤制 210度 25分钟 15分钟翻面
		4. 取出
		5. 吃,蘸料吃
		6. 洗锅,刷碗

需求:
	我想吃牛肉面
	
	找个店铺吃
		1. 找一个兰州牛肉面
		2. 点一份大份牛肉面+肉
		3. 等
		4. 吃
		5. 结账走人
		
	自己做着吃
		1. 买牛肉 
			牛肉块 香料 八角,桂皮,香叶,花椒,麻椒,小茴香
		2. 牛肉焯水,小葱,生姜,料酒
		3. 炒香料
			炒葱姜蒜
			倒入生抽,老抽
			香料全下
			倒入牛肉,翻炒
			倒入水,刚刚好没过牛肉
			黄豆酱一勺
			煮15分钟,放入7-8冰糖
			煮15分钟,放入盐
			20分钟出锅
		4. 牛肉就可以为所欲为
			牛肉面,牛肉饭,土豆牛肉...
生活中的面向对象和面向过程
	面向对象:
		找合适的人,做合适的事
	面向过程:
		亲力亲为,自力更生,所有的过程都是经历
3. 类和对象
对象
人类PDD,马云爸爸,麻花藤
狗类王可可,国庆家的Luck,忠犬八公,高飞,史努比
手机类骚磊的HUAWEI Mate 30 Pro(5G),骚磊曾经的iPhone8P
电脑类骚磊的小米游戏本,骚磊的ThinkPad,骚磊曾经的MacBook Pro
类:
	对于一类事物的统称,包含对于属性描述和行为描述
	
	已人类为例
	属性描述: 身高 体重,样貌...
	行为描述: 吃饭,睡觉,上班,学习,打游戏...

对象:
	具体的,独立的,唯一的个体 
【小总结】
生活中面向对象和面向过程的例子
	面向对象 直观,高效,并且是符合我们生活案例的一种方式
	面向过程 较为繁琐的方式,但是面向对象的基础就是面向过程。

类和对象
	类 统称的概念
	对象 唯一的
4. Java中定义类的格式【重点】
4.1 格式分析
格式:
	class 类名 {
		属性描述;
		行为描述;
	}
类名:
	要求符合大驼峰命名法,见名知意
	类名这里可以认为是一个数据类型名,自定义数据类型
	
属性描述:
	描述当前类有哪些属性
	例如:
		人类的身高体重,年龄姓名
		
行为描述:
	描述当前类有哪些行为
	例如:
		人类的吃饭行为,睡觉行为,打游戏行为
4.2 自定义完成Person类
/**
 * 自定义Person类,人类
 * @author Anonymous
 *
 */
class Person {
	/* 属性描述 【成员变量 Field】*/
	// 姓名属性描述 这里暂时不需要初始化 只是描述当前类有哪些属性
	// String是字符串类型,name成员变量
	String name;
	
	// 年龄描述
	// int是数据类型 age成员变量
	int age;
	
	// 性别描述
	// char是数据类型 gender成员变量
	char gender;
	
	/* 
	 * 行为描述  【成员方法 Method】
	 * 一下方法目前不需要static 不要问
	 */
	// 吃饭行为描述
	public void eat(String food) {
		System.out.println("吃" + food);
	}
	
	// 睡醒行为描述
	public void sleep() {
		System.out.println("月亮不睡你不睡,你是秃头小宝贝");
	}
	
	public void game() {
		System.out.println("WOT World Of Tank 坦克世界");
	}
}
5. Java中创建对象的格式【重点】
5.1 比葫芦画瓢
格式:
	Scanner扫描器
	Scanner sc = new Scanner(System.in);

赋值号左侧:
	Scanner:
		数据类型名,Scanner类,【类名】。
	sc:
		sc 可以认为是Scanner类的对象,sc对象名,同时也是一个【引用数据类型变
		量】

赋值号右侧:
	new:
		1. 在内存的【堆区】申请当前对象所需的内存空间
		2. 擦除整个内存空间中的所有数据,所有的内存空间中二进制位都是0
	Scanner(System.in);
		和类名同名的方法
		目前 类名();即可

格式:
	类名 对象名 = new 类名();
5.2 创建Person类对象
/*                                                
 * 这里创建一个Person对象                                 
 * 格式:                                            
 * 		类名 对象名 = new 类名();                        
 *                                                
 * 这里创建了一个Person类的对象,对象名 saolei                   
 */                                               
Person saolei = new Person();                     
System.out.println(saolei);                       
/*                                                
 * com.qfedu.b.Object.Person@15db9742             
 * com.qfedu.b.Object 完整的包名                       
 * Person 类名                                      
 * @ 所在内存位置                                       
 * 15db9742 是当前Person类的对象,saolei所在【堆区】内存空间首地址     
 */                                               
5.3 再比葫芦画瓢【使用成员变量】
int[] arr = new int[10];

arr.length ???
	这里没有小括号,得到的数组的容量,是一个属性

操作类内的成员变量格式:
	类对象.成员变量名 可以赋值操作,可以取值操作
5.4 使用成员变量方式
/*                                                        
 * 通过Person类的对象, saolei操作name成员变量,age成员变量,gender成员变量      
 * 进行赋值操作                                                 
 *                                                        
 * . 的                                                    
 */                                                       
saolei.name = "海航中路彭于晏";                                  
saolei.age = 16;                                          
saolei.gender = '男';                                      
                                                          
/*                                                        
 * 通过Person类的对象 saolei取值成员变量内容                            
 */                                                       
System.out.println("Name:" + saolei.name);                
System.out.println("Age:" + saolei.age);                  
System.out.println("Gender:" + saolei.gender);            
5.5 三比葫芦画瓢【使用成员方法】
Scanner sc = new Scanner(System.in);

sc.nextInt(); 通过Scanner类的对象 sc调用nextInt();
sc.nextFloat();
sc.nextDouble();
sc.nextLine();

. 的

格式:
	类对象.成员方法(所需参数);
5.6 通过类对象使用成员方法
/*                        
 * 格式:                    
 * 		类对象.成员方法(所需参数);   
 * . 的                    
 */                       
saolei.eat("鲱鱼罐头鱼丸");     
saolei.sleep();           
saolei.game();            
6. 总结
1. 以上格式你懵逼,太正常了,因为你没有学过,你也没听懂,你可能就记住了一个 . 的
2. 小问题,小场面
3. 敲
4. 格式
	a. 自定义类的格式
	b. 创建类对象格式
	c. 通过类对象调用成员变量的格式
	d. 通过类对象调用成员方法的格式
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值