跟着IT彭于晏学JAVA之面向对象

1.什么是面向对象

面向过程:我应该干什么 重在过程  事务执行者
 * 挑选一个电脑(台式)
 * 1.挑一个cpu Intel Core i7
 * 2.挑一个主板  华硕
 * 3.挑一个显卡  七彩虹  影驰  9600GT
 * 4.挑一个显示器 
面向对象:重点在对象 我该找谁干什么  指挥者
 * 找一个懂电脑的人 帮你去买电脑
 * 更贴近人的思维(懒人思维)

2.面向对象的好处

面向对象的好处:
 * 1.把复杂的问题 简单化
 * 2.从事务的执行者 转化为 指挥者
 * 3.更贴近人的思维(懒人思想)

3.类与对象

类和对象
 * java中  最基本的单位 就是类
 * 类:对抽象事物的描述(模板)
 * 对象:用类创建出来的就是对象(具体的事物)

4.成员变量与局部变量的区别

成员变量 和 局部变量 区别 
  1.在类中位置不同:成员变量:在类中方法外。局部变量:在方法定义中或者方法声明上。

  2.在内存中的位置不同:成员变量:在堆内存。  局部变量:在栈内存。

  3.生命周期不同:成员变量:随着对象的创建而存在,随着对象的消失而消失。 局部变量:随着方法的调用而入栈,随着方法的调用完毕而消失。
  
  4.作用域 :  成员变量:整个类. 局部变量:方法中.

  5.初始化值不同:成员变量:跟堆内存中,有默认值初始化。局部变量:没有默认值初始化,必须定义,赋值,然后才能使用。

  6.注意事项:局部变量名称可以和成员变量名称一样,在方法中使用的时候,采用的是就近原则。 

5.创建不同包下的同名类

package com.lanou3g;

import com.lanou4g.Test;

public class Demo03 {
		public static void main(String[] args) {
			//创建一个Person对象
			Person p1 = new Person();
			p1.fun();
			
			//创建不同包下的同名类对象
			//需要指定完整的包名来创建对象
			//一般情况下:不建议写同名类
			com.lanou4g.Person p2 = new com.lanou4g.Person();
			p2.fun();
			
			//创建不包不同名的类
			Test test = new Test();
		}
}

6.参数是引用数据类型和数据是引用数据类型

public class Demo04 {
		//参数是基本数据类型
		public static  void fun1(int a) {
			System.out.println(a);
			a = 10;
			
		}
	   //参数是引用数据类型
		//要什么类型 就给什么类型
		public static void fun2(Person p) {
			p.name = "刘斌";
			p.age  = 24;
			
		}
		public static void main(String[] args) {
			int a = 100;
			fun1(a);
			System.out.println(a);
			
			Person p1 = new Person();
			p1.name = "凡鹏";
			p1.age = 28;
			fun2(p1);
			p1.sayHi();//打印的是刘斌 24.因为进行的是地址的传递
		}
}

不多说 上图!!!


不比比 再来一张


7.匿名对象

 匿名对象:没有名字的对象
 * 1.在方法传参数时使用
 * 2.只调用一下方法(不赋值的情况下)
public static void setNameAndAge(Person p, String name, int age) {
		p.name = name;
		p.age = age;
		p.sayHi();

	}

	public static void main(String[] args) {
		// 创建两个对象 并赋值
		// 将重复代码抽成一个方法
		Person p1 = new Person();
		p1.name = "wanglong";
		p1.age = 16;
		p1.sayHi();
		
		Person p2 = new Person();
		setNameAndAge(p2, "menglomg", 18);
		//使用匿名对象 当方法参数
		//好处:减少代码量
		setNameAndAge(new Person(), "kun", 20);
		//匿名对象 也是对象 也可以赋值属性 调用成员方法
		new Person().name = "xin";
		new Person().age = 30;
		new Person().sayHi();//打印结果是 null 0. 因为开辟的是三块区域
		//只调用方法可以使用匿名对象
		//测试方法的时候可能会使用
		new Person().fun();

				
	}

8.封装

封装
 * 写方法就是封装的一种
 * 隐藏代码的实现和属性 不能随意修改
 * 需要开发访问方式(方法)  获取 修改
 * 好处:
 * 1.提高代码的复用性
 * 2.提高代码的安全性

 私有的(权限修饰符)
 * private 私有的
 * 被private 修饰的属性 只能本类中访问

9.构造方法

构造方法:对对象的成员变量进行初始化
 * 写法:
 * 1.没有返回值类型(连void都不用写)
 *2.构造方法方法名 要与 类名 完全一致
//创建一个pen对象
		//构造方法 是系统帮你调用
		//只要你创建对象 系统就会帮你调用构造方法
		//构造方法只会执行一遍
		Pen pen = new Pen();
		pen.sayHi();
		
		//测试有参的构造方法
		//当你传参数 系统就会去找你有参的构造方法调用
		Pen p1 = new Pen("钢笔", "绿色");
		p1.sayHi();

10.创建一个标准的java bean 类

类中写什么?
		 * 成员变量
		 * 无参构造方法
		 * 有参构造方法
		 * 成员方法
		 * set/get方法

11.一个标准的Book类示范

public class Homework {
	public static void main(String[] args) {
		Book book = new Book();
		Book book2 = new Book("少年阿宾", 25);
		
		book.setName("平凡的世界");
		System.out.println("我是成员方法,这本书的名字是:"+book.getName());
		
	}
}
 class Book{
	 private String name;
	 private int price;
	 Book(){
		 this.name = "小王子";
		 this.price = 95;
		 System.out.println("我是Book类的无参构造方法,我的书名是:"+name+",我的价格是:"+price);
		 
		 
	 }
	 Book(String name,int price){
		 this.name = name;
		 this.price = price;
		 System.out.println("我是Book类的有参数构造方法,我的名字是:"+name+",我的价格是"+price);
	 }
	 public void read(){
		 System.out.println("我是成员方法,这本书的名字是:"+name);
	 }
	 public void setName(String name){
		 this.name = name;
	 }
	 public String getName(){
		 return name;
	 }

Python网络爬虫与推荐算法新闻推荐平台:网络爬虫:通过Python实现新浪新闻的爬取,可爬取新闻页面上的标题、文本、图片、视频链接(保留排版) 推荐算法:权重衰减+标签推荐+区域推荐+热点推荐.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值