(21)Java基础 --面向对象(2)

目录

面向对象

一、封装

二、构造方法

1、构造方法的概念

2、构造方法的定义格式

3、构造方法的特征

4、构造方法的作用

5、定义标准的 POJO 类 domain 业务域 entity 实体bean, javabean

6、基本布尔类型的Getter方法

三、初始化代码块

四、实例对象 实例属性 实例方法

五、this关键字

1、this的含义

2、this使用格式

3、调用构造方法

4、作用总结


面向对象

一、封装

如果类当中有一些成员不希望被外界直接访问,那么可以使用private关键字进行修饰,从而达到确保数据安全的目的。

private是私有的意思,可以修饰属性和方法。

被它修饰的属性和方法只能在本类中使用,不能在其它类中使用。

定义私有属性:

      使用private修饰属性的格式,在数据类型的前面加private关键字,格式为:

            private 数据类型 属性名;

定义私有方法:

      使用private修饰方法,在返回值类型前面添加private关键字,格式为:

            private 返回值类型 方法名(形参列表){
                           方法体
                   }

为什么把方法定义成私有的?
              在设计方法时,就已经想好了,这个方法只允许在这个类中被调用,不允许在其它类中调用.

封装后的属性将不能直接访问?那么如何访问?

      每个被封装的属性,都应该提供相应的set和get方法(setter/getter)

 

public class Person {
	private int id;
	private String name;
	private int age;

	public void setId(int x){
		id = x;
	}
	public int getId(){
		return id;
	}
	
	public void setName(String str){
		name = str;
	}
	public String getName(){
		return name;
	}
	public void setAge(int x){
		if(x<0){
			System.out.println("你的赋值不合适,已经把年龄默认设置为18了");
			age = 18;  // 当非法赋值时,赋age为18
		}else{
			age = x;
		}
	}	
	public int getAge(){
		return age;
	}
	public void eat(){
		System.out.println("吃饭....");
	}
}

private的含义

private是一个权限修饰符,代表最小权限。

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

被private修饰后的成员变量和成员方法,只在本类中才能访问。

封装的好处

隐藏了类的具体实现

操作简单

提高对象数据的安全性

二、构造方法

1、构造方法的概念

又称为构造器,C++称为构造函数,Java中称为构造方法或构造器。

2、构造方法的定义格式

修饰符 类名(参数列表){
        方法体
}

3、构造方法的特征

名字必与类名相同。

参数可有可无,可多可少。

没有返回值,也不是void。

new 的时候被自动调用。创建对象时自动调用

public class Student {
	private int id;
	private String name;
	private int age;
	private String address;
	
	public Student(){
		//System.out.println("Student对象创建了");
	}
}

4、构造方法的作用

1.创建对象

2.初始化对象:初始化属性

注意事项:

      1.如果没有在类中定义构造方法,编译器会自动在编译阶段给类添加一个无参的构造方法.

      2.如果在类中定义了构造方法,不管定义的构造方法是什么样的,也不管定义了几个构造方法,编译就不会自动给类添加无参的构造方法了,在创建对象时只能调用自己添加的构造方法了。

在开发时,一般都是在类中定义一个无参和一个满参构造方法。

在一个类中可以定义多个构造方法,以进行不同的初始化。多个构造方法存在于类中,是以重载的形式体现的。因为构造方法的名称都相同。

5、定义标准的 POJO 类 domain 业务域 entity 实体bean, javabean

POJO: Plain Of Java Object简单的java对象。

类中需要写如下内容:

      1.属性都定义成私有的,给属性添加setXxx(xxx)和getXxx()方法,这两个方法都是用public修饰的;

      2.给每个私有属性提供一对getter setter方法;

      3.提供一个无参的构造方法和满参的构造方法;

6、基本布尔类型的Getter方法

isXxx()

三、初始化代码块

类似构造方法,也是用来初始化对象的成员变量的。

{
    初始代码块
}
优先于构造方法被执行.
每次调用构造方法时都会先执行.

构造方法已经能初始化对象了为什么还要有初始化块啊?

      初始化块初始化对象的时期优先于构造方法,所以当多个构造方法拥有同样的初始化语句时,可以把该语句统一提到初始化块中定义,以免相同的初始化语句分散到各个构造方法中引起代码重复、凌乱。

class Student {
	{   // 初始化代码块——在创建对象时,自动调用 -----在构造方法之前执行,所以可以将多个构造方法中相同的代码放入代码块中
		//System.out.println("初始化代码块<<<<>>>>>");
		System.out.println("Student对象创建了");
	}
	public Student(){
		//System.out.println("Student对象创建了");
	}
	public Student(int a,int b){
		//System.out.println("Student对象创建了");
	}
	public Student(int a,String str1,int b,String str2){    //构造方法重载(overload)
		//System.out.println("Student对象创建了");
		id = a;
		name = str1;
		age = b;
		address = str2;
	}
}

四、实例对象 实例属性 实例方法

实例对象:(简称 实例)

      使用类new出来的对象。

      比如:

            Person p = new Person();

实例属性:

      存储在实例对象里面的属性,是属于实例对象的,需要通过实例对象访问这些属性。

      格式:

            实例对象名.实例属性名;

实例方法:

      返回值 类型前面没有static关键字的方法叫实例方法。

      public  返回值类型 方法名(形参列表){
        
                  方法体
        
              }

      是存储在实例对象中的,属于实例对象。

      与实例属性一样, 在每个实例对象中都存储了一份。

      要通过实例对象调用实例方法。

      格式:

            实例对象名.实例方法名(实参列表);

五、this关键字

1、this的含义

this代表所在类的当前对象的引用(地址值),即对象自己的引用。

记住 :方法被哪个对象调用,方法中的this就代表那个对象。即谁在调用,this就代表谁。

this,当前对象的默认引用。(调用这个方法的对象的引用)

2、this使用格式

this.成员变量名;

public class User {
	private int id;
	private String name;
	private int age;
	
	public void setId(int id){  // 成员变量和方法参数同名  
		this.id = id;   
	  //this.id 成员变量    id 方法参数
	}
	
	public int getId(){
		return this.id;
	}
}

3、调用构造方法

在一个类中,其中一个构造方法调用其他构造方法可以使用this关键字。

格式:

      this() 或 this(参数)

注意:调用时,必须放在构造方法的第一句

public User(int id,String name,int age){   //构造方法重载
		
		this();  //必须放在第一行
		System.out.println("User类的三个参数的构造方法");
		this.id = id;
		this.name = name;
		this.age = age;
}

4、作用总结

1、调用成员变量,用来解决成员变量和局部变量同名的问题。

2、调用方法,简化代码编写(IDE工具代码提示功能)。

3、在构造方法中调用其他构造方法。(注意:在构造方法中调用其他构造方法时,this语句必须方法在第一句

上一篇:(20)Java基础 --面向对象(1)

下一篇:(22)Java基础 --static关键字

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值