Java基础第六讲

一、面向对象


1.属性


   就是事物的描述信息,相当于事物身上的名词.


2.方法


   就是该事物可以做什么,相当于动词


3.成员变量


1)就是事物的属性,如一个人的姓名,性别,年龄.


2)定义在类里,方法的外面.位置在堆内存中.


3)会随着对象的创建二存在,随着对象的消失而消失.


4)有默认的初始化值.


4.局部变量


1)在方法定义中或方法声明上.位置是在栈内存中


2)会随着方法的调用二存在,调用完毕则消失.


3)没有默认的初始化值,需先赋值后才能使用.


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

1)作用域不同

   成员变量是在类的里面,方法体的外面,所有方法都可以调用它.
   局部变量定义在方法里面,只有该方法可以调用.
       

2)成员变量有默认值.局部变量没有默认值,需要提前设置默认值.

3)内存中的区别.
     成员变量所在的类实例化后存储在堆内存中.
     局部变量在所在方法被调用时存储在栈内存中.



注:局部变量名称可以和成员变量的名称一样,在方法中使用时,采用"就近原则".


5.成员方法


   就是事物的行为,如一个人可以吃饭,喝水,唱歌.


6.类


   类就是一个属性和方法的集合.


7.对象


1)对象是事物的具体体现,如一般班里有许多学生,其中的同学"张三"就是一个对象.


/*
定义一个学生类


学生的属性:姓名,年龄,性别


学生的行为(方法):吃饭,学习,睡觉
*/


class Student {
	String name = "张三";
	int age = 27;
	char sex = '男';


	public void eat(){
		System.out.println("吃饭");
	}


	public void study(){
		System.out.println("学习");
	}


	public void sleep(){
		System.out.println("睡觉");
	}
}


/*
手机类
属性:品牌,颜色,价格
行为:打电话,发信息,玩游戏
*/


class Phone {
	String brand;
	String color;
	double price;


	public static void main(String[] args){
		Phone p = new Phone();
		p.brand = "iphone6plus";
		p.color = "土豪金";
		p.price = 7148.5;
		System.out.println(p.brand);
		System.out.println(p.color);
		System.out.println(p.price);
	}


	public void call(){
		System.out.println("打电话");
	}


	public void sendMessage(){
		System.out.println("发信息");
	}


	public void playGeme(){
		System.out.println("玩游戏");
	}
}




2)创建对象的格式


   类型 对象名 = new 类名();


3)调用成员变量


   对象名.变量名


4)调用成员方法


   对象名.方法名(...);


二、匿名对象


1)可以当作参数传递


class Demo1_Car {
	public static void main(String[] args) {


		method(new Car());
	}


	public static void method(Car c) {
		c.color = "black";
		c.num = 4;
		c.run();
	}
}

class Car {
	String color;
	int num;


	public void run() {
		System.out.println(color + "," + num);
	}
}






2)匿名的应用


   如只需调用一次,会省去部分代码量.,因为调用完,程序结束时,会变为垃圾,所以不适合多次调用,内存会产生大量垃圾.


三、封装


1.封装的意义


   将不需要对外提供的内容隐藏起来,隐藏属性,值提供方法的访问权.
   
2.封装的益处


   隐藏实现细节,提供公共的访问方式,提高代码的复用性和安全性.


四、private关键字


   作用:将一个属性或方法的权限限制为私有,被private修饰的成员变量只能在该类使用.


class Test6 {


	public static void main(String[] args) {


		Phone p = new Phone();
		p.setBrand("爱疯6Plus");
		p.setPrice(8000);
		
		System.out.println("我的手机是:" + p.getBrand() + "价格是:" + p.getPrice());


		p.call();
		p.sendMessage();
		
	}


}




class Phone{


	private String brand;
	private int price;


	public void setBrand(String brand){
		
		this.brand = brand;
	}


	public String getBrand(){
		
		return brand;
		
	}


	public void setPrice(int price){
	
		this.price = price;
	}


	public int getPrice(){
	
		return price;
	}


	public void call(){


		System.out.println("打电话");
	}


	public void sendMessage(){
	
		System.out.println("发信息");
	}
}





五、this关键字


   区分同名的局部变量和成员变量(在有些情况下需要定义相同名字的局部变量和成员变量)


class Test7 {
	public static void main(String[] args) {
		Student s = new Student();
		s.setName("张三");
		s.setAge(23);
		s.setGender('男');


		System.out.println("姓名:" + s.getName() + "\t" + "年龄:" + s.getAge() + "\t\t" + "性别:" + s.getGender());


		s.show();
	}
}




class Student{
	private String name;
	private int age;
	private char gender;


	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 show(){
	
		System.out.println(name + "在传智播客学习");
	}


}


猜你喜欢

转载自blog.csdn.net/nannan1989yue/article/details/45193635