Java 学习笔记day_06

初识面相对象


类和对象_

类 :类是对一群具有共同属性和行为事物的抽象(抽象)
对象:真实客观存在的事物(具体存在的,看得见摸得着)

对象和类的关系_

  • 类是对象的抽象
  • 对象是类的实体

类的定义_


	public class 类名(){
	// 成员变量
	int a;
	// 成员方法 (无参无反回值)
	public void 方法名(){
		// 语句体
	}
}

对象的使用_

	
	// 创建对象
	类名 对象名 = new 类名();
	//使用对象访问成员变量
	对象名.成员变量名
	//使用对象访问成员方法
	对象名.成员方法名();
	

示例:


	public class Demo{
	
		int age;
		String name;
	
		public void show(){
			System.out.println("姓名:" + name + ", 年龄:" + age);
		}
}


-----------------------------------------------------------------------------------------------------------


	public class testDemo {
	    public static void main(String[] args) {
	   		// 创建对象
	   		Demo p = new Demo();
			
			// 使用成员变量
			System.out.println(p.name);// 输出 null
       	 	System.out.println(p.age);// 输出 0
			
			// 给成员变量赋值
			p.name = "张三";
			p.age = 66;
			
			System.out.println(p.name);// 输出 张三
       	 	System.out.println(p.age);// 输出 66

			// 使用成员方法	
			p.show(); // 输出 姓名:张三, 年龄:66
	    }


}

成员变量和局部变量的区别_

  1. 定义位置不同:成员变量定义在类中,方法外,局部变量定义在方法中或者方法声明上
  2. 内存中位置不同: 成员变量在堆区,局部变量在栈区
  3. 生命周期不同:
  • 成员变量是随着对象的创建和存在,随着对象的销毁而销毁
  • 局部变量是随着方法的调用而存在,随着方法的弹栈而销毁

private关键字_

private是一个权限修饰符,但是它的权限是最小的

private可以修饰成员变量和成员方法

  • 修饰成员变量: private 数据类型 变量名;
  • 修饰成员方法: private 返回值类型 方法名(形参){ 方法体 }
  • 被private修饰的成员只能在本类中使用,这样就可以保护本类的成员不被其他类访问

被private关键字修饰过后的成员变量或是方法,都只能在当前类中使用

要想访问被private关键字修饰过后的成员变量或是方法可以通过方法来进行参数传递

示例2:


	public class Demo2{

		private String name;
		private int age;
	
		// 定义get 和 set 方法
		public void setName(String name){
			name = name1;// 把传进来的值赋给name
		}
		
		public void setAge(int age){
			age = age1; // 把传进来的值赋给age
		}
		
		public String getName(){
			return name; 返回 name的值
		}
		
		public int getAge(){
			return age; // 返回 age的值
		}

		// 被private 修饰的成员方法
		public void show(){
			sheep();// 在Demo2类中调用被 private 关键字修饰过的sheep()方法
		}
		private void sheep(){
			System.out.println("睡觉中勿打扰...");
		}
		
}


-----------------------------------------------------------------------------------------------------------



	public class testDemo2 {
	    public static void main(String[] args) {
	   		// 创建对象
	   		Demo2 p2 = new Demo2();
			
			// 给成员变量赋值
			p2.setName("老六");
			p2.setAge(88);
			
       	 	// 获取成员变量
       	 	System.out.println(p2.getName);// 输出 老六
       	 	System.out.println(p2.getAge);// 输出 88
			
			// 访问变修饰了private 关键字的sheep()方法
			p2.show(); // 输出 睡觉中勿打扰...
	    }
}

this关键字_

作用:使用this可以区分同名的成员变量和局部变量
格式:this.成员变量名

  1. 如果方法中有局部变量和成员变量同名,那么带this的就是成员变量,不带this就是局部变量
  2. 如果方法中没有局部变量和成员变量同名,那么带不带this都是成员变量
  3. this表示谁: 哪个对象调用this所在的方法,this就表示哪个对象(重要)

	public class Demo3{

		private String name;
		private int age;
	
		public void setName(name){
			this.name = name; // 用this成员变量的方式访问的是成员变量 不带this的就是局部变量
		}
		
		public void setAge(){
			age = age;// 没有使用this关键字age 就等于age它本身
		}
		
		public void show(){
			System.out.println("setName =" + name + ", setAge =" + age);
		}
		
}
	


-----------------------------------------------------------------------------------------------------------



public class testDemo3 {
	    public static void main(String[] args) {
	   		// 创建对象
	   		Demo3 p3 = new Demo3();
			
			// 给成员变量赋值
			p3.setName("王五");
			p3.setAge(77);
			
			// 打印 age,name 的值
       	 	p3.show(); // 输出 setName =王五, setAge =0
			
			
	    }
}

构造方法_

构造方法是一种比较特殊的方法,用来创建对象的,并给对象属性赋初始化值的

定义构造方法:


	// 空参构造方法
	修饰符 构造方法名(){
    
	}
	// 有参构造方法
	修饰符 构造方法名(形参){
	    //使用形参给成员变量赋值
	}
	
  1. 修饰符一般使用public
  2. 构造方法名只能是类名
  3. 构造方法没有返回值,连void 都没有

	public class Demo4{
	
		private String name;
		private int age;
		
		// 空参构造方法
		public Demo4(){
			System.out.println("空参构造");
		}
		
		//有参构造方法
		public Demo4(String name,int age){
			System.out.println("有参构造");
			this.name = name;
			this.age = age;
		}
	}
	

-----------------------------------------------------------------------------------------------------------

	
	public class testDemo4 {
		    public static void main(String[] args) {
		    	// 创建Demo4 对象
		    	Demo4 = p4 = new Demo4(); // 输出 空参构造
				
				Demo4 = p4_1 = new Demo4("AAA",67); // 输出 有参构造
		    }
		    
	}

	

  • 如果一个类没有定义构造方法,那么系统会自动给出一个空参构造方法
  • 如果一个类中定义了构造方法,那么系统就不会自动给出一个空参构造方法,所以如果想要空参构造方法,就得自己手动定义了
  • 构造方法是可以重载的
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值