区块链技术博客
www.b2bchain.cn

Java第七天:面向对象2.0

这篇文章主要介绍了Java第七天:面向对象2.0的讲解,通过具体代码实例进行16833 讲解,并且分析了Java第七天:面向对象2.0的详细步骤与相关技巧,需要的朋友可以参考下https://www.b2bchain.cn/?p=16833

本文实例讲述了2、树莓派设置连接WiFi,开启VNC等等的讲解。分享给大家供大家参考文章查询地址https://www.b2bchain.cn/7039.html。具体如下:

文章目录

    • 面向对象
        • 1. this关键字
        • 2. 成员变量和局部变量的区别
          • 2.1 啥是局部变量
          • 2.2 成员变量和局部变量
          • 【补充知识点 对应数据类型的零值】
          • 【JVM的GC垃圾回收机制】
        • 3. 面向对象三大特征之封装
          • 3.1 狭隘但是有非常广义的封装
          • 3.2 符合JavaBeans规范的封装

面向对象

1. this关键字

	this表示调用当前方法的类对象,如果在构造方法中,表示的是当前构造方法和new关键字一起创建的类对象本身。  Person p = new Person();  public Person(String name) { 	this.name = name; }  一种特殊使用方式 	通过this关键字在一个构造方法中去调用其他构造方法 	优点: 		1. 优化代码逻辑 	 	2. 规范化创建对象的操作过程 	格式: 	 	this(实际参数); 	语法要求:     	1. this在构造方法中调用其他构造方法,是根据实际参数的数据类型来选择     	对应的构造方法。【这里利用的知识点是方法的重载】     	2. this在构造方法中调用其他构造方法,需要在本构造方法的第一行     	3. 能不能在同一个构造方法中同时调用两个其他构造方法     		不允许     	4. 能不能在两个构造方法中使用this相互调用 

2. 成员变量和局部变量的区别

2.1 啥是局部变量
for (int i = 0; i < 10; i++) { 	 }  System.out.println(i);  语法错误: 	sout这行中报错,没有定义变量i。 	因为for循环中定义的int i = 0 有效操作使用区域只能在for循环大括号以内。 	这是一个局部变量 	 main() { 	int num = 10; 	test(num); 	 	sout(num); }  test(int num) { 	num = 20; }  展示结果为10 	因为在main方法和test方法内使用的num变量都是当前方法内的【局部变量】,没有任何关系,在调用test方法传入参数时,仅仅是将main方法中num变量保存的数据10,赋值给方法test中参数名为num的变量使用,而在test方法执行过程中,修改的了test方法内num的数据,和main中的变量num没有任何的关系 

Java第七天:面向对象2.0

2.2 成员变量和局部变量
区别 成员变量 局部变量
功能 描述当前类拥有的属性 提供给方法或者代码块执行保存数据的一种方式
定义位置 类内方法外 在方法内或者代码块内
默认值 是对应成员变量的数据类型的"零"值 未定义不能使用,未赋值不能参与除赋值操作之外的运算
生命周期 从创建对象开始,到当前对象被JVM垃圾回收机制GC销毁 有且只在所处的当前大括号以内,超出范围立即失效
作用域 谁持有当前类对象的空间首地址,谁就拥有成员变量的使用权,作用域范围视当前地址所处空间为定 有且只在所处的当前大括号以内,超出范围立即失效
【补充知识点 对应数据类型的零值】
byte short int ==> 0 long ==> 0L float ==> 0.0F double ==> 0.0 boolean ==> false char ==> '' 其他所有数据类型【引用数据类型】都是 null  
【JVM的GC垃圾回收机制】
类似于图书管理员管理图书的操作 	1. 如果需要把无主图书返回原书架,需要多次确认 	2. 图书管理员检查无主图书过程存在一定的时间周期,有中断时间 	3. 如果考虑多个图书管理员,会浪费太多资源 	 JVM的垃圾回收机制GC和图书管理员类似 	1. 在内存【堆区】管理内存需要多次确认当前内存无主,才可以收回 	2. GC机制是有中断时间片,存在一定的延后性 	3. GC机制一般情况下在整个程序有且只有一个 

3. 面向对象三大特征之封装

3.1 狭隘但是有非常广义的封装
JavaBeans规范 	1. 要求所有的成员变量全部私有化 	2. 提供所有的成员变量对应的setter和getter方法 	3. 提供当前类对应的必要的无参数构造方法 	4. 要求当前类内符合标准的命名规范【重点】 	 封装思想到底有什么? 	方法的封装 	数据的封装 	框架的封装 	对于开发中有一定复用度,普适性的代码做一个整合。 
3.2 符合JavaBeans规范的封装
1. 要求所有的成员变量全部私有化 	public 公开的,公共的。操作很方便,但是有隐患!!! 	private 私有化,私有化修饰的成员变量和成员方法在类外不能直接使用  2. 提供所有的成员变量对应的setter和getter方法 	格式: 		setter方法,赋值当前成员变量对应的数据 		public void set成员变量名(对应当前成员变量数据类型的参数) { 			this.成员变量 = 参数; 		} 		 		getter方法,获取当前成员变量对应的数据 		public 对应成员变量的数据类型 get成员变量名() { 			return 成员变量; 		} 		 		如果操作的成员变量是boolean类型,对应getter方法是is成员变量 		例如: 			public boolean isSingle() { 				return single; 			}  3. 提供当前类对应的必要的无参数构造方法,懒一点可以不写构造方法。 4. 北京第三搬砖委提示您 	代码千万行 	规范第一行 	代码不规范 	码农两行泪 
class Dog { 	private String name; 	private int age; 	private char gender; 	private boolean single; 	 	public Dog() {} 	 	// setter和getter方法 	public void setName(String name) { 		this.name = name; 	} 	 	public String getName() { 		return name; 	} 	 	public void setAge(int age) { 		this.age = age; 	}  	 	public int getAge() { 		return age; 	} 	 	public void setGender(char gender) { 		this.gender = gender; 	} 	 	public char getGender() { 		return gender; 	} 	 	public void setSingle(boolean single) { 		this.single = single; 	}  	 	public boolean isSingle() { 		return single; 	} 	 	private void test() { 		System.out.println("自带生化核武器~~~"); 	} }  public class Demo4 { 	public static void main(String[] args) { 		Dog dog = new Dog(); 		 		// dog.name = "骚杰"; 		dog.setName("骚杰"); 		dog.setAge(5); 		dog.setGender('公'); 		dog.setSingle(false); 		 		System.out.println("Name:" + dog.getName()); 		System.out.println("Age:" + dog.getAge()); 		System.out.println("Gender:" + dog.getGender()); 		System.out.println("Single:" + dog.isSingle()); 		 		// dog.test(); 	} } 

希望大家关注我一波,防止以后迷路,有需要的可以加我Q讨论互相学习java ,学习路线探讨,经验分享与java Q:2415773436

本文转自互联网,侵权联系删除Java第七天:面向对象2.0

赞(0) 打赏
部分文章转自网络,侵权联系删除b2bchain区块链学习技术社区 » Java第七天:面向对象2.0
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

b2b链

联系我们联系我们