java基础(七)

本文介绍了面向对象编程的基本概念,包括面向过程与面向对象的区别,以及Java语言中的类和对象。强调了封装、继承和多态这三大面向对象特征,并通过学生类和手机类的例子展示了如何定义和使用类。还探讨了成员变量与局部变量的区别,private关键字的作用,以及构造方法在初始化对象时的应用。最后,给出了标准学生类的代码实现和测试用例,演示了成员变量的访问和初始化。
摘要由CSDN通过智能技术生成

面向对象 类与对象

面向过程:面向着具体的每一个步骤和过程,把每一个步骤和过程完成,然后由这些功能方法相互调用,完成需求
面向过程的代表语言:c语言
面向对象:将步骤跟功能进行封装,封装时根据不同的功能进行不同的封装,功能类似的封装在一起,使用时找到对应的类即可(基于面向过程)
面向对象思想特点
1.更符合我们思考习惯的特点
2.将复杂的事情简单化
3.将我们从执行者变成了指挥者

java语言最基本的单位是类
类:是一组相关的属性和行为的集合
对象:就是该事务的具体体现
类的定义:类是用来描述现实世界的事物的
事物: 属性(事物的描述信息),行为(事物能够做什么)
类:成员变量(不需要给初始化值)
成员方法(去掉static关键字)
练习:定义学生类(成员变量 姓名 年龄)
(成员方法 学习 吃饭)

public class Student {
	String name;
	int age;
	
public static void Study() {
	System.out.println("好好学习,天天向上");
}
public static void Sleep() {
	System.out.println("沉迷睡觉,无法自拔");
}
Student s=new Student();
		System.out.println("s.name"+s.name);
		System.out.println("s.age"+s.age);
		System.out.println("------------------------------------");
		
		s.name="林志玲";
		s.age=40;
		s.Study();
		s.Sleep();
		System.out.println("s.name="+s.name);
		System.out.println("s.age="+s.age);
		

使用类,就是使用类的成员
使用一个类的成员必须首先拥有该类的对象
格式:类名 对象名=new 类名();
成员变量:对象名.变量名
对象名.方法名(…)
练习2:定义一个手机类
成员变量:品牌 价格 颜色
成员方法: 打电话 发短信

	String brand;//品牌属性
	int price;
	String color;
	
	public static void  Call(String name) {
		System.out.println("打电话给"+name);
	}
public static void SendMessage() {
	System.out.println("群发短信");

引用

Phone p=new Phone();
 System.out.println(p.brand);
 System.out.println(p.price);
 System.out.println(p.color);
 p.brand="华为";
 p.price=4999;
 p.color="black";
 p.Call("林志玲");
 p.SendMessage();
 System.out.println(p.brand);
 System.out.println(p.price);
 System.out.println(p.color);

成员变量和局部变量的区别
1.在类中的位置不同
成员变量:类中,方法外
局部变量:方法中或者方法声明上(形式参数)
2.内存中的位置不同
成员变量在堆内存
局部变量在栈内存
3.生命周期不同
成员变量:随着对象的创建而存在,随着对象的消失而消失
局部变量:随着方法的调用而存在,随着方法的调用完毕而消失
4.初始化值
成员变量:有默认值
局部变量:没有默认值。必须先定义,赋值,最后使用

private关键字

通过对象直接访问成员变量,会存在安全问题
private关键字:
是一个修饰符,可以修饰成员变量和成员方法
被private修饰的成员只能在本类中被访问
针对private修饰的成员变量,我们会相应的提供getxx()和setxx获取和设置成员变量的值
方法用public修饰

private String name;
private int age;
public void setName(String n) {
	name=n;
}
public void setAge(int a) {
	age=a;
}
public String getName() {
	return name;
	
}
public int getAge() {
	return age;
}
Student s=new Student();
		s.setAge(22);
		s.setName("林志玲");
		System.out.println(s.getName()+s.getAge());

封装、继承、多态是面向对象的三大特征
封装是面向对象编程语言对客观世界的模拟,客观世界里成员变量都是隐藏在对象内部的,外界无法直接操作和修改。
封装原则:
将不需要对外提供的内容都隐藏起来
把属性隐藏,提供公共方法对其访问
成员变量private 提供对应的getXxx()/setXxx方法
好处:
通过方法来控制成员变量的操作,提高了代码的安全性
把代码用方法进行封装,提高了代码的复用性
this关键字:代表所在类的对象引用,方法被哪个对象使用,this就代表那个对象
如果有局部变量名和成员变量名相同,在局部使用的时候,采用的是就近原则
this.成员变量=局部变量
使用场景:局部变量隐藏成员变量
**构造方法:**给对象的数据进行初始化
格式:方法名和类名相同
没有返回值类型,连void都不能写
没有具体的返回值
如何调用构造方法:通过new 关键字调用
格式:类名 对象名=new 构造方法(。。。);
构造方法的注意事项:1.如果我们没有给出构造方法,系统将会提供一个默认的无参构造方法供我们使用
<构造方法可以重载>
2.给出构造方法,系统将不在提供默认的构造方法
成员变量赋值1.setXxx()2.带参构造方法
练习1:标准学生类的代码写法和测试
类{成员变量
构造方法(无参构造方法
带参构造方法)
成员方法 getXxxx()
setXxx()
给成员变量赋值的方法
无参构造方法+setXxxx()
带参构造方法}

private String name;
private int age;
public Student() {}
public Student(String name,int age) {
	this.age=age;
	this.name=name;
	}
public void setAge(int age) {
	this.age=age;
	
}
public void setName(String name) {
	this.name=name;
}
public int getAge() {
	return age;
}
public String getName() {
	return name;
}

使用

Student s=new Student();
		s.setName("linda");
		s.setAge(26);
		System.out.println(s.getName()+"-----------"+s.getAge());
		Student s1=new Student();//public Student() {}
		System.out.println(s1.getName()+"-----------"+s1.getAge());
		Student s2=new Student("李梅",28);//public Student(String name,int age) {}
		
		
		System.out.println(s2.getName()+"-----------"+s2.getAge());
	}

类名作为形势参数 :其实这里需要传递该类的对象
类名作为返回值:返回的是类的对象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值