java知识day08(变量;参数;匿名对象;封装;关键字:private,this)

变量

局部变量和成员变量的区别?
1)在类中的位置不同
成员变量:成员位置—在类中,方法外定义的变量
局部变量:在方法定义中,或者方法声明上的变量
2)在内存中的位置也不同
成员变量:在堆内存中
局部变量:在栈内存中
3)生命周期
成员变量:随着对象的创建而存在,随着对象的回收而消失
局部变量:随着方法调用而存在,随着方法的调用完毕而消失
4)初始化不同
成员变量:跟对象相关的,描述一个对象的属性(成员变量存在一个系统默认初始化),当然也可以直接赋值
局部变量:在使用之前,必须初始化,否则编译不通过
注意事项:
当成员变量名称和局部变量名称一致,通过成员方法访问变量名称的时候,采用就近原则!局部位置没有,成员位置找!

参数

基本类型作为方法的形式参数,形式参数的改变不会影响实际参数 引用类型作为方法的形式参数,形式参数的改变会直接影响实际参数

匿名对象

就是没有名字的对象
格式:

new 类名(); 有名字的对象:类名 对象名 = new 类名() ;

匿名对象应用场景:

1)实际开发中,仅使用一次即可!
匿名对象直接在堆内存开辟空间,使用完毕,立即从内存中释放调用
2)使用匿名对象的时候,可以链式编程(开发中不建议使用这种方式)
new 类名1().方法名1(new 类名2()) ;
后期使用过程中:(面向对象高级部分)集合框架 IO流

封装

在面向对象程式设计方法中,封装(英语:Encapsulation)是指一种将抽象性函式接口的实现细节部分包装、隐藏起来的方法。
封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问。
要访问该类的代码和数据,必须通过严格的接口控制。
封装最主要的功能在于我们能修改自己的实现代码,而不用修改那些调用我们代码的程序片段。
适当的封装可以让程式码更容易理解与维护,也加强了程式码的安全性。

封装的优点

  1. 良好的封装能够减少耦合。

  2. 类内部的结构可以自由修改。

  3. 可以对成员变量进行更精确的控制。

  4. 隐藏信息,实现细节。

private

private是访问控制修饰符,用来使用访问控制符来保护对类、变量、方法和构造方法的访问。
在程序中需要隐藏类的实现细节和保护类的数据时,就要使用private来修饰。

class Phone{
	private String pinpai;
	private String color;
	private String jiage;
	private String neicun;
	public void Phone(String pinpai,String color,String jiage,String neicun){
		this.pinpai = pinpai ;
		this.color = color ;
		this.jiage = jiage ;
		this.neicun=neicun;
	}
	public void setpinpai(String pinpai){
		this.pinpai = pinpai ;
	}
	public void setcolor(String color){
		this.color = color ;
	}
	public void setjiage(String jiage){
		this.jiage = jiage ;
	}
	public void setneicun(String neicun){
		this.neicun = neicun ;
	}
	public String getpinpai(){
		return pinpai ;
	}
	public String getcolor(){
		return color ;
	}
	public String getjiage(){
		return jiage ;
	}
	public String getneicun(){
		return neicun;
	}
	public void dadianhua(){
		System.out.println("正在打电话...") ;
	}
	public void paizhao(){
		System.out.println("正在拍照...") ;
	}
	public void liaotian(){
		System.out.println("正在聊天..") ;
	}
}
class PhoneShiWu{
	public static void main(String[] args){
		Phone p = new Phone();
		p.setpinpai("华为");
		p.setcolor("土豪金") ;
		p.setjiage("3998元") ;
		p.setneicun("128g");
		System.out.println(p.getpinpai()+"---"+p.getcolor()+"---"+p.getjiage()+"---"+p.getneicun());
		p.dadianhua();
		p.paizhao();
		p.liaotian();
	}
}

this

作用:

this.属性名称
指的是访问类中的成员变量,用来区分成员变量和局部变量(重名问题)

class Student{
	private String name;
	private int age;
	private String gender;
	private String faxing;
	public void Student(String name,int age,String gender,String faxing){
		this.name = name ;
		this.age = age ;
		this.gender = gender ;
		this.faxing=faxing;
	}
	public void setName(String name){
		this.name = name ;
	}
	public void setAge(int age){
		this.age = age ;
	}
	public void setGender(String gender){
		this.gender = gender ;
	}
	public void setFaxing(String faxing){
		this.faxing = faxing ;
	}
	public String getName(){
		return name ;
	}
	public int getAge(){
		return age ;
	}
	public String getGender(){
		return gender ;
	}
	public String getFaxing(){
		return faxing;
	}
	public void study(){
		System.out.println("正在学习JavaSe...") ;
	}
	public void eat(){
		System.out.println("饿了,该吃饭了...") ;
	}
	public void play(){
		System.out.println("学习累了,玩游戏放松一下...") ;
	}
	public void smoke(){
		System.out.println("精神不振,抽根烟吧...") ;
	}
}
class StudentShiWu{
	public static void main(String[] args){
		Student s = new Student();
		s.setName("张三");
		s.setAge(39) ;
		s.setGender("男") ;
		s.setFaxing("短发");
		System.out.println(s.getName()+"---"+s.getAge()+"---"+s.getGender()+"---"+s.getFaxing());
		s.study();
		s.play();
		s.smoke();
		s.eat();
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值