面向对象,类和对象,封装性,private关键字,this关键字,构造方法

面向对象

面向谁,就是更多的关注谁,比如:面向高端消费者
面向过程:当你需要实现一个功能的时候,每一个具体的步骤都要亲力亲为,详细处理每一个细节。强调步骤
面向对象:当需要实现一个功能的时候,不关心具体步骤,而是找一个已经具有该功能的人,来帮我做事。他强调的是通过调用对象的行为来实现功能,而不是自己一步一步的去操作实现。
面向对象的特点:面向对象思想是一种更符合我们思考习惯的思想,他可以将复杂的事情简单化,并将我们从执行者变成了指挥者。
面向对象的语言中,包含了三大基本特征,即封装,继承,和多态。

类和对象

:类是一组相关属性和行为的集合,可以看成是一类事物的模板,使用事物的属性特性和行为特征来描述该类事物。 (模拟一类现实事物)
属性:就是该事物的状态信息
行为:就是该事物能做什么
对象对象是一类事物的具体体现,是类的一个实例,必然具备该事物的属性和行为。
类和对象的关系:
类是一类事物的描述,是抽象的
对象是一类事物的实例,是具体的
类是对象的模板,对象是类的实例。
比如:
类:小猫
属性:名字, 颜色,年龄
行为:跑,叫
对象:我家的猫
属性:喵喵,黑色,1岁
行为:慢悠悠的跑,喵喵叫

类的定义

java中class里的成员变量对应事物的属性,成员方法对应事物的行为

类的定义格式:
public class ClassNme{
成员变量;
成员方法;
}
成员方法不写static关键字。

//定义一个学生类
public class Student{
	String name;//成员变量
	int age;
	public void study{  //成员方法
		study;
	}
	public void eat{
		eat;
	}
}

对象的创建和使用:

通常情况下,一个类不能直接使用,需要根据类创建一个对象才能使用。
导包:指出需要的类,在什么位置
import 包名称:类名称
创建:
类名称 对象名 = new 类名称()
使用:
对象名.成员变量名
对象名.成员方法名(参数)

如果使用的类,和自己在同一个包下,可以省略导包语句。

Student stu = new Student();
stu.name = "张杰";
stu.eat;

如果成员变量没有赋值,那么将会有一个默认值,规则和数组一样。

使用对象作为方法的参数
Student stu = new Student();
stu.name = "张杰";
stu.age = 18;
method (stu);//调用方法  张杰 18
public static void method(Student param){
	System.out.println(param.name)
	System.out.println(param.age)
}
使用对象作为方法的返回值
Student stu1 = getStudent();
System.out.println(stu1.name);//张杰
System.out.println(stu1.age);//18
public static Studen getStudent(){
	Student stu = new Phone();
	one.name = "张杰";
	one.age = 18;
	return stu;
}

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

  1. 定义的位置不一样:局部变量在方法的内部,成员变量在方法的外部,直接写在类中。
  2. 作用范围不一样:局部变量只有方法当中才可以使用,出了方法就不能再用。成员变量整个类全部可以使用。
  3. 默认值不一样:局部变量没有默认值,想要使用必须手动赋值,成员变量如果没有赋值,会有默认值,规则和数组一样。
  4. 内存的位置不一样:局部变量位于栈内存,成员变量位于堆内存。
  5. 生命周期不一样:局部变量随着方法进栈而诞生,随着方法出栈而消失,成员变量随着对象创建而诞生,随着对象被垃圾回收(这个对象再也不用了,JVM可能在合适的时机把这块内存清掉)而消失。
封装性

封装性:将属性隐藏起来,若需要访问某个属性,提供公共方法对其访问。(将细节隐藏起来,对外界不可见)
方法就是一种封装,关键字private也是一种封装
private关键字
private代表私有化,被修饰后的成员变量和成员方法,只有在本类中才能访问。可以提高代码的安全性
外部的类想要访问,需要通过get/set方法
set方法:向成员变量设置数据
get方法:获取成员变量数据
get:不能有参数,返回值类型和成员变量对应。
set:不能有返回值,参数类型和成员变量对应。

对于基本类型中的boolean值,get方法一定要写成isxxx,set不变。

public class Student{//定义一个学生类
	String name;
	Private int age;
	public void show (){
		System.out.println("我叫:" + name "年龄:" + age);
	}
	public void setAge(int num){
		if(number <100 && number>0){
			age = num;
		}else{
			System.out.println("数据不合理");
		}//阻止不合理的数据被设置进来,提到了代码的安全性
	public int getAge(){
			return age;
		}
	}
}
//使用
Student stu = new Student();
stu.setAge(18);
System.out.println("年龄:" + stu.getAge);

this关键字
当方法的局部变量和类的成员变量重名时候,根据就近原则,优先使用局部变量
如果需要访问类当中的成员变量,需要使用this关键字

//定义一个学生类
public class Student{
	String name;//我的名字
}
public void sayHello(String name){
	System.out.println(name + "你好,我是" + this.name);//参数name是对方的名字
}

//定义一个Studen对象
Student stu = new Student();
stu.name = "爸爸"//设置自己的名字是爸爸
stu.sayHellow("儿子"//把参数对方的名字:儿子传递到方法中 打印结果为:儿子,你好,我是爸爸

方法被哪个对象调用,方法中的this就代表那个对象。(stu调用了sayHello方法,所以this.name是stu的名字 : 爸爸)

构造方法

构造方法是专门用来创建对象的方法,当我们通过关键字new来创建对象时,其实就是在调用构造方法。
构造方法的名称必须和类名称完全一样,大小写也要一样
构造方法不要写返回值类型,连void都不写。
构造方法不能return一个具体的返回值
如果没有编写构造方法,那么编译器会赠送一个构造方法,没有参数,方法体什么都不做。
构造方法也可以重载(有参构造方法,无参构造方法)

//定义一个学生类
public class Student{
	private String name;
	private int age;
	public Student(){//无参构造方法
			
	}
	public Student(string name, int age){//全参构造方法
		this.name = name;
		this.age = age;
	}
}

//定义一个Studen对象
Student stu = new Student();//调用无参构造方法(构造方法的调用格式是new )
Student stu = new Student(张杰,18);//调用全参构造犯法

如果修改对象当中的内容,还是需要set 方法
标准的类
一个标准的类需要四个部分组成
所有成员变量都要使用private修饰
为每一个成员变量编写一对get,set方法
编写一个无参构造方法
编写一个全参构造方法
这样标准额类也叫做Java Bean

//定义一个学生类
public class Student{
	private String name;
	private int age;

	public void setName(String name){
		this.name = name;
	}
	public void getName(String name){
		return name;
	}
	public void setAge(int age){
		this.age = age;
	}
	public void getAge(int age){
		return age;
	}
	public Student(){//无参构造方法
			
	}
	public Student(string name, int age){//全参构造方法
		this.name = name;
		this.age = age;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值