1、复习
Java基础语法规范
Java两种大的数据类型:基本数据类型、引用数据类型
基本数据类型:八种回顾
引用数据类型:数组、字符串、类、Scanner、Connection
Java基础语法规范
Java两种大的数据类型:基本数据类型、引用数据类型
基本数据类型:八种回顾
引用数据类型:数组、字符串、类、Scanner、Connection
变量的命名规则:
1.只能由数字、字母、下划线和$组成
2.不能有数字开头
3.不能以关键字命名(new class )
4.严格区分大小写。
1.只能由数字、字母、下划线和$组成
2.不能有数字开头
3.不能以关键字命名(new class )
4.严格区分大小写。
八种基本数据类型:
整形 int(32位) long short byte
小数:double float
字符型:char
布尔型:boolean
整形 int(32位) long short byte
小数:double float
字符型:char
布尔型:boolean
String(特殊的数据类型)
变量; 数据类型 变量名;
变量的赋值: 变量名 = 数据;
注意:数据要和与之对应的数据类型相匹配。
(错误示范:)int a ="逗逼";
算术运算符:+ - * / % += -= *= ++ -- (自加,自减)
注意:/(取整:当除数和被除数都是整数的时候,做的是取整) 例如:8/3=2
例如; String str ="逗逼" ; str +="无聊"; 相当于 str = str +"无聊";
例如:i++ 相当于 i= i+1;
变量的赋值: 变量名 = 数据;
注意:数据要和与之对应的数据类型相匹配。
(错误示范:)int a ="逗逼";
算术运算符:+ - * / % += -= *= ++ -- (自加,自减)
注意:/(取整:当除数和被除数都是整数的时候,做的是取整) 例如:8/3=2
例如; String str ="逗逼" ; str +="无聊"; 相当于 str = str +"无聊";
例如:i++ 相当于 i= i+1;
关系运算符: < > == <= >= !=
逻辑运算符:&&并且 ||或者 !(非)
if(){
}
}
if(){
}else{
}
}else{
}
if(){
}else if(){
}
}else if(){
}
while(){
}
}
for(int i ; i<10 ;i++){
}
}
2、新内容
一、目标:掌握类和对象的特征
会创建和使用对象
理解封装:a)理解封装概念。 b)掌握private关键字。c)掌握构造方法。d)掌握方法重载。
一、目标:掌握类和对象的特征
会创建和使用对象
理解封装:a)理解封装概念。 b)掌握private关键字。c)掌握构造方法。d)掌握方法重载。
二、类和对象(面向对象,属性,方法,封装,类与对象的概念,new,访问成员)
●从抽象的世界理解:
面向过程;所有的代码都是写在main函数中的
面向对象:可以把代码写在main函数之外
把现实世界抽象到程序代码中------------------->
类:物以类聚人以群分,人类,动物类,植物类。
比如:某某同学,一看就是人类。标准是什么?
不能说(两个眼睛一个鼻子俩胳膊俩腿)长得像人就是人(猩猩),要符合人类的定义。
人类:能直立行走,能独立思考。
●类的属性,方法
警察找犯罪现场目击证人描述犯罪嫌疑人。
●从抽象的世界理解:
面向过程;所有的代码都是写在main函数中的
面向对象:可以把代码写在main函数之外
把现实世界抽象到程序代码中------------------->
类:物以类聚人以群分,人类,动物类,植物类。
比如:某某同学,一看就是人类。标准是什么?
不能说(两个眼睛一个鼻子俩胳膊俩腿)长得像人就是人(猩猩),要符合人类的定义。
人类:能直立行走,能独立思考。
●类的属性,方法
警察找犯罪现场目击证人描述犯罪嫌疑人。
静态的特征(属性):身高、年龄、体重、男女
动态的行为(方法):习惯行动作(无间道刘德华)
动态的行为(方法):习惯行动作(无间道刘德华)
一个类由两部分组成:属性、方法。
类的特征:用变量描述
类的行为:用函数描述
类的特征:用变量描述
类的行为:用函数描述
●类与对象的概念
人类:特征:height weight
行为:run walk cry laugh happy 直立行走、独立思考、会使用工具
类是模子,确定对象将会拥有的特征(属性)和行为(方法)
类和对象:类是对事件一类事物的描述(模板),对象就是类的具体化,(是类的产品)
类是创建对象的模版,是一个抽象的概念。是一个看不见摸不着的东西。
比如说:我叫你拿一个人类过来,你拿过来的往往是人类的实例:张三、李四
类和对象:类是对事件一类事物的描述(模板),对象就是类的具体化,(是类的产品)
类是创建对象的模版,是一个抽象的概念。是一个看不见摸不着的东西。
比如说:我叫你拿一个人类过来,你拿过来的往往是人类的实例:张三、李四
●从语法上理解:
int a = 10; //基本数据类型
Person p = new Person(); //自定义数据类型
★类是我们自定义的一种数据类型,而对象则是这种数据类型的变量值。
int a = 10; //基本数据类型
Person p = new Person(); //自定义数据类型
★类是我们自定义的一种数据类型,而对象则是这种数据类型的变量值。
●类和对象的关系:类是创建对象的模版,对象是类的一个实例。
千万不能把类和对象搞混淆,它们是完全不同的两种东西:
类是一个静态的东西,是一种定义,是一种概念,是一种数据类型。
在现实生活中有:老师、学生、宿管阿姨、机房、快餐店、药
代码里有:Scanner Connection Statement
千万不能把类和对象搞混淆,它们是完全不同的两种东西:
类是一个静态的东西,是一种定义,是一种概念,是一种数据类型。
在现实生活中有:老师、学生、宿管阿姨、机房、快餐店、药
代码里有:Scanner Connection Statement
对象是一个实例,是真实存在的,我们可以去沟通交流使用操作
对应上面的例子有:李老师、小崔、张阿姨、603、牛牛、太极藿香正气水
代码里有:scan conn stat
对应上面的例子有:李老师、小崔、张阿姨、603、牛牛、太极藿香正气水
代码里有:scan conn stat
●Java中类和实例的创建
所有Java程序都以类为组织单元。(Java是纯面向对象的编程语言:封装、继承、多态)
用关键字class来创建自定义数据类型。
所有Java程序都以类为组织单元。(Java是纯面向对象的编程语言:封装、继承、多态)
用关键字class来创建自定义数据类型。
//无意义的类,只从语法上演示了java程序的运行
public class HelloWorld{
public static void main(String[] args){
System.out.println("Hello World");
}
}
//为什么要用面向对象,因为可以使用类将现实世界模拟到计算机程序中。
★面向对象是一种思维方式。
public class 类名 { 类名:英文单词,有意义的,首字母大写。
//定义属性部分
属性1的类型 属性1;
属性2的类型 属性2;
…
属性n的类型 属性n;
public class HelloWorld{
public static void main(String[] args){
System.out.println("Hello World");
}
}
//为什么要用面向对象,因为可以使用类将现实世界模拟到计算机程序中。
★面向对象是一种思维方式。
public class 类名 { 类名:英文单词,有意义的,首字母大写。
//定义属性部分
属性1的类型 属性1;
属性2的类型 属性2;
…
属性n的类型 属性n;
//定义方法部分
方法1;
方法2;
…
方法m;
}
属性也叫成员变量,主要描述类的状态。
方法也叫成员方法,主要描述类的行为。
●见图片01类、02类的定义、03生成对象
方法1;
方法2;
…
方法m;
}
属性也叫成员变量,主要描述类的状态。
方法也叫成员方法,主要描述类的行为。
●见图片01类、02类的定义、03生成对象
●见代码JavaOOP_01示例
练习:新建一个Person类中添加姓名、性别、年龄。添加一个送外卖的方法(行为),
并给方法设置一个返回值String。在main方法调用并接收返回值打印
并给方法设置一个返回值String。在main方法调用并接收返回值打印
三、Java类中的方法(函数) ●见代码JavaOOP_01示例Person
1.无参数无返回
void 方法名(){}
2.有参数无返回
void 方法名(数据类型 参数名){}
参数名可以随便命名,但是一定要遵守变量的命名规则
3.无参数有返回
返回值数据类型 方法名(){
return 返回值;
}
4.有参数有返回
返回值数据类型 方法名(数据类型 参数名){
return 返回值;
}
形参:定义方法的时候,会需要传递参数。在定义的时候,那个参数叫做形参。
就形式上的参数,没有实际的值。只起以形式上的作用。就是告诉你这个地方需要一个参数而已。
实参:是调用方法的时候需要传递的参数,有实际意义(有值的变量)
1.无参数无返回
void 方法名(){}
2.有参数无返回
void 方法名(数据类型 参数名){}
参数名可以随便命名,但是一定要遵守变量的命名规则
3.无参数有返回
返回值数据类型 方法名(){
return 返回值;
}
4.有参数有返回
返回值数据类型 方法名(数据类型 参数名){
return 返回值;
}
形参:定义方法的时候,会需要传递参数。在定义的时候,那个参数叫做形参。
就形式上的参数,没有实际的值。只起以形式上的作用。就是告诉你这个地方需要一个参数而已。
实参:是调用方法的时候需要传递的参数,有实际意义(有值的变量)
四、封装和访问控制权限(public和private)
●封装:将属性(变量)和行为(函数)封装到一个类中。
●封装:将属性(变量)和行为(函数)封装到一个类中。
public 、private 只是一个修饰词,被这两个词修饰的属性或者方法有以下特征:
public(公共的东西,其他地方都可以用)
private(私有的,只有自己可以使用)
★通常我们类的属性都是用private去修饰。但这也不是绝对,是情况而定。
生成getters/setters方法。
空白处点击鼠标右键---Source---Generate Getters and Setters--
--选择你要生成getters/setters方法的属性——>ok即可
public(公共的东西,其他地方都可以用)
private(私有的,只有自己可以使用)
★通常我们类的属性都是用private去修饰。但这也不是绝对,是情况而定。
生成getters/setters方法。
空白处点击鼠标右键---Source---Generate Getters and Setters--
--选择你要生成getters/setters方法的属性——>ok即可
将属性设置为私有,并使用set方法去设置属性的优点:
保证数据的安全型
我们还需要给这个类添加一个get方法去获取这个类中的属性值
保证数据的安全型
我们还需要给这个类添加一个get方法去获取这个类中的属性值
★通常我们类的行为(方法)都用public去修饰
★封装的实现:
1、修改类的属性的可见性来限制对属性的访问。
2、为每一个属性创建一对赋值(setter)方法和取值(getter)方法用于对这些属性的访问。
3、在(setter)(getter)方法中加入对属性存取的限制。(作用:为了保护字段)
1、修改类的属性的可见性来限制对属性的访问。
2、为每一个属性创建一对赋值(setter)方法和取值(getter)方法用于对这些属性的访问。
3、在(setter)(getter)方法中加入对属性存取的限制。(作用:为了保护字段)
为啥?举例:你钱包空了要去银行账户取钱,你不是直接通过
修改银行账户钱的属性减少,你是要通过一个窗口职员给你的
账户取值的getter方法,然后减去给你现金数,职员再调用setter方法设置你的钱数
修改银行账户钱的属性减少,你是要通过一个窗口职员给你的
账户取值的getter方法,然后减去给你现金数,职员再调用setter方法设置你的钱数