Day07(Java面向对象)学习记录

大纲

Day07(Java面向对象)学习目标

【学习目标】理解、了解、应用、记忆

通过今天的学习,参训学员能够:(解释的时候说出二级目标的掌握程度)

  1. 【应用】面向对象概述
  1. 【理解】能够阐述面向对象思想与面向过程思想的特点
  2. 【了解】能够阐述类与对象的关系
  3. 【理解】能够根据面向对象的代码画出内存图解
  4. 【理解】能够阐述成员变量和局部变量的区别
  1. 【应用】面向对象特性之封装
  1. 【应用】能够独立使用private关键字
  2. 【理解】能够阐述封装的优点
  3. 【应用】能够独立使用this关键字
  1. 【应用】面向对象之构造方法
  1. 【应用】能够在类中定义构造方法
  2. 【应用】能够定义多个构造方法使其构成重载关系
  3. 【应用】能够定义一个完整的类(构造方法,getter/setter方法)
  1. 【应用】类名作为形参和返回值
  1. 【应用】能够独立定义并且调用一个形参为类名的方法
  2. 【应用】能够独立定义并且调用一个返回值为类名的方法

收获:

一:内存图解

一句话就是:从方法区开始,在栈里面建立空间,在堆里面分配空间,函数结束,栈释放空间

二:private---不让外界的对象直接访问成员变量 

package com.itheima_06;
public class Student {
	private String name;
	private int age;
	
	public void setName(String n) {
		name = n;
	}
	
	public String getName() {
		return name;
	}
	
	public void setAge(int a) {
		age = a;
	}
	
	public int getAge() {
		return age;
	}
}
package com.itheima_06;
public class StudentDemo {
	public static void main(String[] args) {
		//创建对象
		Student s = new Student();
		System.out.println(s.getName()+"---"+s.getAge());
		
		s.setName("林青霞");
		s.setAge(28);
		System.out.println(s.getName()+"---"+s.getAge());
	}
}

三:this---适用于局部变量和成员变量重名

package com.itheima_07;
public class Student {
	private String name;
	private int age;
	
	public void setName(String name) { //"林青霞"
		//name = name;
		this.name = name;
	}
	
	public String getName() {
		return name;
	}
	
	public void setAge(int age) {
		//age = age;
		this.age = age;
	}
	
	public int getAge() {
		return age;
	}
}
package com.itheima_07;
public class StudentDemo {
	public static void main(String[] args) {

		Student s = new Student();
		System.out.println(s.getName()+"---"+s.getAge());
		
		s.setName("林青霞");
		s.setAge(28);
		System.out.println(s.getName()+"---"+s.getAge());
	}
}

四:定义多个构造方法使其构成重载关系(类与方法重名时)

package com.itheima_08;
public class Student {
	private String name;
	private int age;
	
	/*
	public Student() {
		System.out.println("这是构造方法");
	}
	*/
	
	public Student() {}
	
	public Student(String name) {
		this.name = name;
	}
	
	public Student(int age) {
		this.age = age;
	}
	
	public Student(String name,int age) {
		this.name = name;
		this.age = age;
	}

	public void show() {
		System.out.println(name+"---"+age);
	}
}
package com.itheima_08;

public class StudentDemo {
	public static void main(String[] args) {
		//如何调用构造方法呢?
		//通过new关键字调用
		//格式:类名 对象名 = new 构造方法(...);
		Student s = new Student();
		s.show();
		
		//public Student(String name)
		Student s2 = new Student("林青霞");
		s2.show();
		
		//public Student(int age)
		Student s3 = new Student(28);
		s3.show();
		
		//public Student(String name,int age)
		Student s4 = new Student("林青霞",28);
		s4.show();
	}
}

五:定义一个完整的类(构造方法,getter/setter方法)

package com.itheima_09;
public class Student {
	//成员变量
	private String name;
	private int age;
	
	//构造方法
	public Student() {}
	
	public Student(String name,int age) {
		this.name = name;
		this.age = age;
	}
	
	//成员方法
	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;
	}
}
package com.itheima_09;
public class StudentDemo {
	public static void main(String[] args) {
		//无参+setXxx()
		Student s = new  Student();
		s.setName("林青霞");
		s.setAge(28);
		System.out.println(s.getName()+"---"+s.getAge());
		
		//带参构造
		Student s2 = new Student("林青霞",28);
		System.out.println(s2.getName()+"---"+s2.getAge());
	}
}

猜你喜欢

转载自blog.csdn.net/qq_42198024/article/details/88082287