java 基础 part 2

何为对象

/*
面向对象是相对面向过程而言(C语言)
面向过程:强调的是功能行为(java)
面向对象:将功能封装进对象,强调了具备了功能的对象、、//执行者变成指挥者
公司老总自己完成一个项目//这面向过程的东西
招人指挥其他人做(其他人就是对象) //面向对象的
面向对象是一种思想,简化
一切皆对象,万物皆对象
人开门

{
门.开
}

{
开门所经历的过程
}
【1】面向对象:三个特征:封装,继承,多态,
【2】以后的开发就是找对象来使用,没有对象就创造一个; 找对象、使用对象、保护对象的关系。
【3】类和对象的关系:
类:对现实生活中事物的描述
对象:实实在在存在的个体。
描述其实就是提取对象中的共性的内容,对具体的抽象。映射到java中描述就是class定义的类,
具体对象就是对应java在堆内存(堆内存中,都有默认初始值)中用new建立实体。

例子://需求:描述汽车(颜色、轮胎个数)。描述事物的属性和行为
属性就是类中的变量,行为对应的是类中的函数
其实定义类就是在描述事物,就是在定义属性和行为。属性和行为共同成为类中的成员。
/*
成员变量和局部变量,【1】作用范围:
成员变量作用于整个类中
局部变量作用于函数中,或者语句中。
【2】在内存中的位置:
成员变量:在堆内存中,因为对象的存在,才在内存中存在。
局部变量:存在于栈内存中,

主函数

public static void main(String[] args)
主函数:是一种特殊函数,作为程序入口,可以被jvm调用
public 代表该函数访问权限是最大的。
static 代表着主函数随着类(class MainDemo)的加载就已经存在了
void 主函数没有具体返回值
main 不是关键字,是一个特殊的单词,可以被jvm调用
(String[] args) 函数的参数,参数类型是一个数组,该数组中元素是字符串
主函数是固定格式:jvm(虚拟机)识别。
jvm在调用主函数时,传入的是new String[0];长度为0的字符串组
主函数传值:pos里面java MainDemo hah xix zez ;后面这三个自动加入main函数的args数组中

private

private:私有,权限修饰符;用于修饰类中的成员(成员变量,成员函数),私有只有在本类中有效。

将age私有化以后,类以外即使建立对象也不可以直接访问,要访问,就需要在Person中提供对应的访问age的方式。要对应一个get和set

注意:私有仅仅是封装的一种表现方式
之所以对外提供访问方式,就因为可以在访问方式中加入逻辑判断等语句。
对访问的数据进行操作,提高代码健壮性。

class Person//定义一个人的类,不用独立运行就不需要主函数
{
	//int age;
	private int age;//只有在本类中访问,外界无法访问。

	public void setAge(int a)//set不需要得出结果,void型,有输入 
{
	if(a>0&&a<130)
	age=a;
	else 
	System.out.println("wrong");
}	
	public int getAge()//get要结果 int等,无输入
{
	return age;
}
	void speak()
	{
	System.out.println("age="+age);
	}
	
}

构造函数

对象一建立,就会调用与之对应的构造函数
构造函数:1,函数名与类相同 固定的格式
2,不用定义返回值类型
3,不可以写return语句
构造函数的作用:可以用于给对象进行初始化(生活中一出现就有的)
注意:当一个类中没有定义构造函数,系统自动加入一个空参数,如Person();
一个对象建立,构造函数执行一次
一般函数可以随时,调用就可以运行。

class Person1//构造函数
{
	Person1()//函数名同类名相同,且不需要public static void等
{
	System.out.println("person run");
}
}

构造代码块

对象一建立就运行,而且优先于构造函数运行。
构造代码块中定义的是不同对象共性的初始化内容。
作用: 给对象进行初始化。
构造代码块与构造函数的区别
构造代码块是给所有对象进行统一初始化,构造函数是给对应的对象初始化。
细节: 构造代码块可以放在类中的任意位置。都会优先于构造函数执行,跟放置的位置无关。
直接用’{ }‘中输入内容

{
	System.out.println("构造代码块(cry)");//优先于构造函数运行,是初始的共性部分
	}

匿名对象

匿名对象
new.car().num=5; 等价于 Car c=new Car();
(没有赋予一个c,用完就无效) c.num=5;
匿名对象的使用方式一:当对对象的方法只调用一次,可以用匿名对象来完成,否则必须给这个对象起个名字。(凡是简化的都有局限性)
匿名对象的使用方式二:可以将匿名对象作为实际参数进行传递。
匿名对象的属性部分用完即无效,行为部分有用

封装

封装:指隐藏对象的属性和实现细节,仅对外提供公共访问方式。
好处:安全,提高重用性,便于使用,使变化隔离
原则:将不需要对外提供的内容隐藏,提供公共方法对其访问。
public :公有
private:私人 private static void hanshu();

关键字this,super

this

1,用于成员变量和局部变量相同时区分,this代表本类的对象,代表所在函数所属对象对象的引用。
2,变量出现同名的情况之下,一定要加this。此外可以酌情不加。
this的应用:当定义类中功能时,该函数内部要用到调用该函数的对象时,用this表示此对象。
3,this语句的应用:
①只能用于构造函数之间的相互调用,写为相应的参数形式。
②this语句只能在构造函数的第一个语句,因为初始化要先执行。不可用于一般函数。

super

/*子父类出现后,类成员的特点:
类中成员:1,变量 2,函数 3,构造函数
变量: 如果子类中出现非私有的同名成员变量时,子类要访问本类中的变量,用this 子类要访问父类中的同名变量,用super。
this和super 用法相似
this 代表是本类对象的引用
super代表是父类对象的引用

thissuper
本类对象引用父类对象引用
WOMEN

格式:

class Person
{
	Person(String name)
{
	this.name=name;
}
	Person(String name,int age)
{
	this(name);//调用Person(String name)(简单演示,相互调用提高复用性)
	this.age=age;
}
}

static静态函数

1,只有静态可以调用静态
2,静态伴随着对象存在就存在了,可以直接被类调用,非静态得通过对象来调用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值