目录
Java基础语法
2 局部变量作用域
3 类型转换
3.1 隐式转换
3.2 强制转换
4 运算符
4.1 算术运算符
4.3 数值拆分
4.4自增自减运算符
4.5 赋值运算符
4.6 比较运算符
4.7 逻辑运算符
4.8 短路运算符
4.9 三元运算符
5 分支语句
5.1 if语句
5.2switch语句
6 循环语句
6.1 for循环语句
6.2 while循环
6.3 产生随机数
7 Java数组
7.1 数组动态初始化
7.2 数组的静态初始化
7.3 数组遍历
7.4 获取最值
7.4 数组元素求和
7.5 重点 冒泡排序
8 java中的方法
8.1 方法的定义和调用
8.2 形参和实参
8.3 带返回值的参数和方法调用
9 面向对象
9.1 Java类和对象
9.2 类中的函数
9.3 对象封装值get方法
9.4 封装
Java基础语法
1 java中的变量:变量就是一个标识符 代表某一个数据并且可以改变
为什么要有变量: 变量体现一种间接的思想
• 如何定义变量:int a=10;
• 格式: 数据类型 变量名字 =初始值;
• 数据类型:标明当前变量可以存储的数据类型格式是什么,例如 int 就是可以存储一个整数
• 变量名字:命名规范 用英文 有意义 int age 小驼峰 首字母要小写 如果有多个单词那么从第二个字母开始首字母要大写 例如:maxAge
• = 赋值符号 :代表就赋值符号右边的值赋值给左边 例int a=10; 代表将10赋值给a
代码运行是从上往下 如果有赋值运算符 则从右往左执行 int a=10+30;
• 初始值:在java中遵循类型匹配原则 我们定义的数据类型是什么 初始值就是什么类型 例如:int a=30;
在java中每句代码完成的时候 都需要以英文的分号结尾
• 八大基本数据类型
整数类型: short Int byte long 浮点型: folse double 布尔型:boolean 字符型:char 字符串: String
面试题:String 是不是八大基本数据类型
String不是八大基本数据类型,而是属于对象类型的一种
2 局部变量作用域
•局部变量: 定义到函数内部的变量
•作用域: 可以理解成 在那个范围内进行运行
•局部变量作用域就是局部变量可以在哪个范围内进行使用:从定义开始 到其所在的大括号结束
•局部变量会覆盖全局变量:
•public class Class {
int b =20; //成员变量 全局变量
public static void main(String[] args) {
int b =10;// 局部变量
System.out.println(b);
}
}
同一作用域:不能重复定义变量
3 类型转换
3.1 隐式转换
1 将转换类型中 取值范围小的数据, 给取值范围大的类型赋值,可以直接赋值
•代码表示:
package com.itlc.www;
public class test22 {
public static void main(String[] args) {
int a=20; // int 4个字节
double b=12.3; // double 8个字节
double c=a+b;
System.out.println(c);
}
}
2 特殊关注:byte short char 三种数据在运算的时候,不管是否有更高的类型 都会提升为int在运算
3.2 强制转换
•强制转换含义:把一个表示数据范围大的数值或者变量赋值给另一个表示数据范围小的变量
•格式 目标数据类型 变量名 =(目标数据类型)值或变量;
•注意: 强制转换有可能会发生精度损失问题
1 精度损失:简单理解就是吧一个八升的水倒入四升水桶 水多了就撒了
代码表示package com.itlc.www;
public class test22 {
public static void main(String[] args) {
double a=10.3; // double 8个字节
int b= (int) a; // int 4个字节
System.out.println(b);//10 损失精度了
}
}
•类型转换案例:
•package com.itlc.www;
public class test22 {
public static void main(String[] args) {
byte a=10;
byte b=10;
•解决方案 先把a和b用括号括起来提升算术优先级再进行强转
byte c=(byte) (a+b);// java: 不兼容的类型: 从int转换到byte可能会有损失精度
•Java中有【常量优化机制】
•常量不用进行强转
byte d=10+10;
System.out.println(c);
System.out.println(d);
}
}
4 运算符
4.1 算术运算符
1 运算符:对常量或者变量进行操作的符号
2 表达式:用运算符把常量和变量连接起来的符合Java语法的式子就可以称为表达式。
不同运算符连接的表达式提现是不同类型的表达式。
•举例说明:
Int a=10;
Int b=20;
Int c=a+b; // +: 就是算术运算符 a+b: 是表达式
+ 加法运算符 - 减法运算符 * 乘法运算符 / 除法运算符 % 取余 获取得是两个数做除法的余数
注意事项:
1 /和%的区别: 两个数据做除法 ,/取得是商 %取的是结果的余数
整数操作只能得到整数 要想得到小数,必须有浮点数参与运算
1 将转换类型中 取值范围小的数据, 给取值范围大的类型赋值,可以直接赋值
•代码表示:
package com.itlc.www;
public class test22 {
public static void main(String[] args) {
int a=20; // int 4个字节
double b=12.3; // double 8个字节
double c=a+b;
System.out.println(c);
}
}
2 特殊关注:byte short char 三种数据在运算的时候,不管是否有更高的类型 都会提升为int在运算
3.2 强制转换
•强制转换含义:把一个表示数据范围大的数值或者变量赋值给另一个表示数据范围小的变量
•格式 目标数据类型 变量名 =(目标数据类型)值或变量;
•注意: 强制转换有可能会发生精度损失问题
1 精度损失:简单理解就是吧一个八升的水倒入四升水桶 水多了就撒了
代码表示package com.itlc.www;
public class test22 {
public static void main(String[] args) {
double a=10.3; // double 8个字节
int b= (int) a; // int 4个字节
System.out.println(b);//10 损失精度了
}
}
•类型转换案例:
•package com.itlc.www;
public class test22 {
public static void main(String[] args) {
byte a=10;
byte b=10;
•解决方案 先把a和b用括号括起来提升算术优先级再进行强转
byte c=(byte) (a+b);// java: 不兼容的类型: 从int转换到byte可能会有损失精度
•Java中有【常量优化机制】
•常量不用进行强转
byte d=10+10;
System.out.println(c);
System.out.println(d);
}
}
4 运算符
4.1 算术运算符
1 运算符:对常量或者变量进行操作的符号
2 表达式:用运算符把常量和变量连接起来的符合Java语法的式子就可以称为表达式。
不同运算符连接的表达式提现是不同类型的表达式。
•举例说明:
Int a=10;
Int b=20;
Int c=a+b; // +: 就是算术运算符 a+b: 是表达式
+ 加法运算符 - 减法运算符 * 乘法运算符 / 除法运算符 % 取余 获取得是两个数做除法的余数
注意事项:
1 /和%的区别: 两个数据做除法 ,/取得是商 %取的是结果的余数
整数操作只能得到整数 要想得到小数,必须有浮点数参与运算
4.1 算术运算符
1 运算符:对常量或者变量进行操作的符号
2 表达式:用运算符把常量和变量连接起来的符合Java语法的式子就可以称为表达式。
不同运算符连接的表达式提现是不同类型的表达式。
•举例说明:
Int a=10;
Int b=20;
Int c=a+b; // +: 就是算术运算符 a+b: 是表达式
+ 加法运算符 - 减法运算符 * 乘法运算符 / 除法运算符 % 取余 获取得是两个数做除法的余数
注意事项:
1 /和%的区别: 两个数据做除法 ,/取得是商 %取的是结果的余数
整数操作只能得到整数 要想得到小数,必须有浮点数参与运算
4.2 字符串“+”操作
1 当字符串中出现“+”操作时 就是连接运算符 而不是算术运算符
4.3 数值拆分
• 个位计算:数值%10
• 十位计算:数值/10%10
• 百位计算:数值/10/10%10
• 千位计算: 数值/10/10/10%10
• ........
4.4自增自减运算符
•++ : 变量自身加一
•-- :变量自身减一 注意:单独使用++和—无论是放在变量前面还是后面,结果都是一样的
•参与操作:
1 :如果放在变量的前先对该变量做自增(++)或者(--) 然后再拿出来参与操作
2 :如果放在变量后面,现将该变量原本的值,取出来参与操作,随后在进行自增(++)自减(--) 一目运算符口诀:(前置加加,先加后用,后置加加 ,先用后加)
3最常见的用法 单独使用
++和—只能操作变量不能操作常量
4.5 赋值运算符
•+= 加后赋值 a+=b, 将a+b得值给a
•-= 减后赋值 a-=b, 将a-b得值给a
•*= 乘后赋值 a*=b, 将a*b得值给a
•/= 减后赋值 a/=b, 将a/b得商给a
•%= 减后赋值 a%=b, 将a/b得余数给a
•注意事项:扩展的赋值运算符隐含了强制类型转换
4.6 比较运算符
•== 等等 a==b
•!= 不等 a!=b
•< 小于 a •<= 小于等于 a<=b
•> 大于 a>b
•>= 大于等于 a>=b
•注意事项: 关系运算符的结果都是boolean类型 要么是true 要么是false
4.7 逻辑运算符
•&(与) 并且:遇false则false,符号两边都为true,结果才为true
•|(或) 或者:遇true则true,符号两边都为true,结果才为true
•^(异或) 符号两边相同为false,不同为true
•! (非): 取反
4.8 短路运算符
•&和&&的区别
&:无论符号左边为true还是false, 右边都执行
&&: 具有短路效果: 符号左边为false的时候,右边就不执行了
如果左边为true 右边执行
•|和||的区别:
|:无论符号左边为true还是false, 右边都执行
||: 具有短路效果: 符号左边为true的时候,右边就不执行了
如果左边为false,右边执行
4.9 三元运算符
•格式 : 关系表达式?表示1:表达式2; 运算流程 关系表达试 为true取一false取二
•案例:三个和尚比身高 用三元运算符
•package com.itlc.www;
public class test22 {
public static void main(String[] args) {
int heshang1=150;
int heshang2=160;
int heshang3=250;
int gao=heshang1>heshang2?heshang1:heshang2;
int zuigao=gao>heshang3?gao:heshang3;
System.out.println(zuigao);
}
}
5 分支语句
5.1 if语句
5.1 if语句
格式 if(关系表达式){
语句体;
}else if(关系表达试){
语句体2;
}else{
语句体3
}
5.2switch语句
Switch(表达式){
case值1:
语句体1;
break;
case值2:
语句体2;
break;
default:
语句体n+1;
Break;
}
6 循环语句
6.1 for循环语句
格式:
for(初始化语句;条件判断语句;条件控制语句){
循环体语句;
}
打印1-5案例:for (int i =1 ; i <=5 ; i++) {
System.out.println(i);
}
也可以打印5-1 i++变为i--
•案例求和: 定义一个变量 int sum=0;
•public class test22 {
public static void main(String[] args) {
int sum =0;
for (int i = 1; i <=5 ; i++) {
sum +=i;
}
System.out.println(sum);
}
}
•案例 求偶数和: 加入if语句
•package com.itlc.www;
public class test22 {
public static void main(String[] args) {
int sum =0;
for (int i = 1; i <=100 ; i++) {
if (i%2==0){
sum+=i;
}
}
System.out.println(sum);
}
}
•for循环写出水仙花数
•public class test22 {
public static void main(String[] args) {
for (int i = 100; i <=999 ; i++) {
int ge=i%10;
int shi= i/10%10;
int bai= i/10/10%10;
if(ge*ge*ge+shi*shi*shi+bai*bai*bai==i){
System.out.println(i);
}
}
}
}
•案例九九乘法表
•public class test22 {
public static void main(String[] args) {
for (int i =1 ; i <=9 ; i++) {
for (int j =1 ; j <=i ; j++) {
System.out.print(j+"*"+i+"="+i*j+" ");
}
System.out.println();
}
}
}
6.2 while循环
•完整格式
初始化语句;
While(条件判断语句){
循环体语句;
条件控制语句;
}
•代码演示:
public class test22 {
public static void main(String[] args) {
int i=1;
while (i<=100){
System.out.println(i);
i++;
}
}
}
6.3 产生随机数
•Random
作用:用于产生一个随机数
Random r=new random;
Int rd = r.nextlnt(10);
7 Java数组
7.1 数组动态初始化
格式:
for(初始化语句;条件判断语句;条件控制语句){
循环体语句;
}
打印1-5案例:for (int i =1 ; i <=5 ; i++) {
System.out.println(i);
}
也可以打印5-1 i++变为i--
•案例求和: 定义一个变量 int sum=0;
•public class test22 {
public static void main(String[] args) {
int sum =0;
for (int i = 1; i <=5 ; i++) {
sum +=i;
}
System.out.println(sum);
}
}
•案例 求偶数和: 加入if语句
•package com.itlc.www;
public class test22 {
public static void main(String[] args) {
int sum =0;
for (int i = 1; i <=100 ; i++) {
if (i%2==0){
sum+=i;
}
}
System.out.println(sum);
}
}
•for循环写出水仙花数
•public class test22 {
public static void main(String[] args) {
for (int i = 100; i <=999 ; i++) {
int ge=i%10;
int shi= i/10%10;
int bai= i/10/10%10;
if(ge*ge*ge+shi*shi*shi+bai*bai*bai==i){
System.out.println(i);
}
}
}
}
•案例九九乘法表
•public class test22 {
public static void main(String[] args) {
for (int i =1 ; i <=9 ; i++) {
for (int j =1 ; j <=i ; j++) {
System.out.print(j+"*"+i+"="+i*j+" ");
}
System.out.println();
}
}
}
6.2 while循环
•完整格式
初始化语句;
While(条件判断语句){
循环体语句;
条件控制语句;
}
•代码演示:
public class test22 {
public static void main(String[] args) {
int i=1;
while (i<=100){
System.out.println(i);
i++;
}
}
}
6.3 产生随机数
•Random
作用:用于产生一个随机数
Random r=new random;
Int rd = r.nextlnt(10);
7 Java数组
7.1 数组动态初始化
•Random 作用:用于产生一个随机数 Random r=new random; Int rd = r.nextlnt(10);
7 Java数组
7.1 数组动态初始化
格式:数据类型 [] 变量名= new int[数组长度];
Int [] array =new int [3];
•数组元素访问格式
数组名[索引];
7.2 数组的静态初始化
•格式: 数据类型[] 变量名= {数据1,数据2,数据3.....};
Int [] arr={数据1,数据2,数据3.....};
7.3 数组遍历
1 动态获取数组中元素个数: 数组名.length;
代码中:
public class test22 {
public static void main(String[] args) {
int [] arr={11,55,54,54,45};
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
}
2 利用Java中的for-each循环进行遍历数组
快速生成 数组名.for
public class bianLi {
public static void main(String[] args) {
int [] arr={5,565,4,484,488,5454,544};
// 从数组中 依次取出数据 复制给变量a 并且执行大括号的代码一次
//for(变量:数值集合){
}
for (int a :arr){
System.out.println(a);
}
}
}
7.4 获取最值
1 代码展示:
public class test22 {
public static void main(String[] args) {
int [] arr={11,55,54,54,45};
// 假设第一个是最大值
int max =arr[0];
for (int i = 1; i < arr.length; i++) {
// 或缺最小值吧括号反过来
if (max
7.4 数组元素求和
•代码展示:
import java.util.Scanner;
public class test22 {
public static void main(String[] args) {
int sum =0;
System.out.println("请输入");
Scanner sc = new Scanner(System.in);
// 定义一个数组长度为5的动态初始化数组
int [] arr =new int[5];
for (int i = 0; i < arr.length; i++) {
arr[i]=sc.nextInt();
sum +=arr[i];
}
System.out.println(sum);
}
}
•案例 评委打分
•import java.util.Scanner;
public class test22 {
public static void main(String[] args) {
int [] arr=new int[6];
Scanner sc = new Scanner(System.in);
for (int i = 0; i < arr.length; i++) {
System.out.println("请输入第" + (i + 1) + "个评委打分");
int i1 = sc.nextInt();
if (i1 >=0 &&i1<=100){
arr[i]=i1;
}else {
System.out.println("你的输入成绩有误,请从新输入");
i--;
}
}
int max=arr[0];
for (int i = 0; i < arr.length; i++) {
if (maxarr[i]){
min =arr[i];
}
}
int sum =0;
for (int i = 0; i < arr.length; i++) {
sum +=arr[i];
}
int i = (sum - max - min) / 4;
System.out.println(i);
}
}
7.5 重点 冒泡排序
import java.util.Arrays;
public class MaoPao {
public static void main(String[] args) {
int [] arr={3,6,65,844,848,89,48};
for (int i = 1; i < arr.length; i++) {// 外层循环空值循环次数
for (int i1 = 0; i1 < arr.length-i; i1++) {// 内层循环控制每轮比较的次数
if (arr[i1]>arr[i1+1]){
int temp=arr[i1+1];
arr[i1+1]=arr[i1];
arr[i1]=temp;
}
}
}
System.out.println(Arrays.toString(arr));
}
}
8 java中的方法
1 代码展示:
public class test22 {
public static void main(String[] args) {
int [] arr={11,55,54,54,45};
// 假设第一个是最大值
int max =arr[0];
for (int i = 1; i < arr.length; i++) {
// 或缺最小值吧括号反过来
if (max
7.4 数组元素求和
•代码展示:
import java.util.Scanner;
public class test22 {
public static void main(String[] args) {
int sum =0;
System.out.println("请输入");
Scanner sc = new Scanner(System.in);
// 定义一个数组长度为5的动态初始化数组
int [] arr =new int[5];
for (int i = 0; i < arr.length; i++) {
arr[i]=sc.nextInt();
sum +=arr[i];
}
System.out.println(sum);
}
}
•案例 评委打分
•import java.util.Scanner;
public class test22 {
public static void main(String[] args) {
int [] arr=new int[6];
Scanner sc = new Scanner(System.in);
for (int i = 0; i < arr.length; i++) {
System.out.println("请输入第" + (i + 1) + "个评委打分");
int i1 = sc.nextInt();
if (i1 >=0 &&i1<=100){
arr[i]=i1;
}else {
System.out.println("你的输入成绩有误,请从新输入");
i--;
}
}
int max=arr[0];
for (int i = 0; i < arr.length; i++) {
if (maxarr[i]){
min =arr[i];
}
}
int sum =0;
for (int i = 0; i < arr.length; i++) {
sum +=arr[i];
}
int i = (sum - max - min) / 4;
System.out.println(i);
}
}
7.5 重点 冒泡排序
import java.util.Arrays;
public class MaoPao {
public static void main(String[] args) {
int [] arr={3,6,65,844,848,89,48};
for (int i = 1; i < arr.length; i++) {// 外层循环空值循环次数
for (int i1 = 0; i1 < arr.length-i; i1++) {// 内层循环控制每轮比较的次数
if (arr[i1]>arr[i1+1]){
int temp=arr[i1+1];
arr[i1+1]=arr[i1];
arr[i1]=temp;
}
}
}
System.out.println(Arrays.toString(arr));
}
}
8 java中的方法
import java.util.Arrays;
public class MaoPao {
public static void main(String[] args) {
int [] arr={3,6,65,844,848,89,48};
for (int i = 1; i < arr.length; i++) {// 外层循环空值循环次数
for (int i1 = 0; i1 < arr.length-i; i1++) {// 内层循环控制每轮比较的次数
if (arr[i1]>arr[i1+1]){
int temp=arr[i1+1];
arr[i1+1]=arr[i1];
arr[i1]=temp;
}
}
}
System.out.println(Arrays.toString(arr));
}
}
8 java中的方法
• 方法概述: 方法(method)就是一段具有独立功能的代码块,不调用不执行
8.1 方法的定义和调用
•方法定义格式
•public static void 方法名(){
方法体;
}
方法调用格式
方法名();
注意:方法与方法是平级关系,不能嵌套定义
•带参数定义格式
•public static void 方法名(参数){}
public static void 方法名(数据类型 变量名){}
•带参数定义格式调用格式:
方法名(参数);
方法名(变量名/常量值);
代码示例:
public class test22 {
public static void main(String[] args) {
fanhui(90);
}
public static void fanhui(int num){
if (num %2==0){
System.out.println("偶数");
}else {
System.out.println("奇数");
}
}
}
8.2 形参和实参
形参:全称形式参数。是指方法定义中的参数
实参:全称实际参数,方法调用中的参数
案例:
public class test22 {
public static void main(String[] args) {
// 在main方法中 调用print方法 传入两个实际参数
print(10,20);
}
// 定义一个方法 方法名为print 定义两个形参
public static void print(int n,int m){
for (int i = n; i <=m ; i++) {
if (i%2==1){
System.out.println("10到20之间的奇数为:"+i);
}
}
}
}
8.3 带返回值的参数和方法调用
•返回值定义格式:
public static 数据类型print(参数){
return 数据;
}
•注意:方法定义是return后面的返回值与方法定义的数据类型要匹配,否则程序会报错
•待返回值方法调用:
格式: 数据类型 变量名= 方法名(参数);
范例:boolean nihao = hello (520);
代码示例:
public class test22 {
public static void main(String[] args) {
int print1 = print(10, 40);
System.out.println(print1);
}
public static int print(int n ,int m){
int c=n+m;
return c;
}
}
9 面向对象
9.1 Java类和对象
•类和对象总结一句话来区别:
类是对象的模板,对象是类的实例
类只有通过对象才可以使用,而在开发中应该先产生类,之后再产生对象
类不能直接使用 对象是可以直接使用的
•对象:对象就是存储数据的一种形式
在Java中 我们要是有对象来存储数据必须先有类
•对象创建:
A: 创建一个类
注意 类名命名规范:英文 有意义 大驼峰---首字母大写 如果有多个单词 每个单词首字母都大写
public class People {
}
B: 添加相应的成员变量
注意 根据要存储的信息 选择合适的数据类型与名称
public class People {
int id;
String name;
int age;
}
C:创建类对象 完成数据存储
类名 变量名=new 类名();
public class textPeople {
public static void main(String[] args) {
People p1= new People();
p1.id=1;
p1.name="张三";
p1.age=18;
System.out.println(p1.id);
}
}
9.2 类中的函数
1声明函数
public class People {
public void foo(){
System.out.println("你好 函数");
}
}
// 声明格式:修饰符 返回值类型 函数名 (){
//代码块;
// }
2函数调用
public class textPeople {
public static void main(String[] args) {
People p1= new People();
p1.foo();
}
}
•返回值格式
1无返回值:
修饰符 返回值类型 函数(){代码块}
2 有返回值:
修饰符 具体的数据类型 函数(){
代码块;
return 数据(要遵循类型匹配原则 与返回值数据类型相同)
}
•参数和返回值都是数据传递的方式:
如果需要调用方 传递数据到执行方 就通过 参数的形式
如果需要 执行方 传递数据到调用方 就通过返回值形式
9.3 对象封装值get方法
形参:全称形式参数。是指方法定义中的参数
实参:全称实际参数,方法调用中的参数
案例:
public class test22 {
public static void main(String[] args) {
// 在main方法中 调用print方法 传入两个实际参数
print(10,20);
}
// 定义一个方法 方法名为print 定义两个形参
public static void print(int n,int m){
for (int i = n; i <=m ; i++) {
if (i%2==1){
System.out.println("10到20之间的奇数为:"+i);
}
}
}
}
8.3 带返回值的参数和方法调用
•返回值定义格式:
public static 数据类型print(参数){
return 数据;
}
•注意:方法定义是return后面的返回值与方法定义的数据类型要匹配,否则程序会报错
•待返回值方法调用:
格式: 数据类型 变量名= 方法名(参数);
范例:boolean nihao = hello (520);
代码示例:
public class test22 {
public static void main(String[] args) {
int print1 = print(10, 40);
System.out.println(print1);
}
public static int print(int n ,int m){
int c=n+m;
return c;
}
}
9 面向对象
9.1 Java类和对象
•类和对象总结一句话来区别:
类是对象的模板,对象是类的实例
类只有通过对象才可以使用,而在开发中应该先产生类,之后再产生对象
类不能直接使用 对象是可以直接使用的
•对象:对象就是存储数据的一种形式
在Java中 我们要是有对象来存储数据必须先有类
•对象创建:
A: 创建一个类
注意 类名命名规范:英文 有意义 大驼峰---首字母大写 如果有多个单词 每个单词首字母都大写
public class People {
}
B: 添加相应的成员变量
注意 根据要存储的信息 选择合适的数据类型与名称
public class People {
int id;
String name;
int age;
}
C:创建类对象 完成数据存储
类名 变量名=new 类名();
public class textPeople {
public static void main(String[] args) {
People p1= new People();
p1.id=1;
p1.name="张三";
p1.age=18;
System.out.println(p1.id);
}
}
9.2 类中的函数
1声明函数
public class People {
public void foo(){
System.out.println("你好 函数");
}
}
// 声明格式:修饰符 返回值类型 函数名 (){
//代码块;
// }
2函数调用
public class textPeople {
public static void main(String[] args) {
People p1= new People();
p1.foo();
}
}
•返回值格式
1无返回值:
修饰符 返回值类型 函数(){代码块}
2 有返回值:
修饰符 具体的数据类型 函数(){
代码块;
return 数据(要遵循类型匹配原则 与返回值数据类型相同)
}
•参数和返回值都是数据传递的方式:
如果需要调用方 传递数据到执行方 就通过 参数的形式
如果需要 执行方 传递数据到调用方 就通过返回值形式
9.3 对象封装值get方法
9.1 Java类和对象
•类和对象总结一句话来区别:
类是对象的模板,对象是类的实例
类只有通过对象才可以使用,而在开发中应该先产生类,之后再产生对象
类不能直接使用 对象是可以直接使用的
•对象:对象就是存储数据的一种形式
在Java中 我们要是有对象来存储数据必须先有类
•对象创建:
A: 创建一个类
注意 类名命名规范:英文 有意义 大驼峰---首字母大写 如果有多个单词 每个单词首字母都大写
public class People {
}
B: 添加相应的成员变量
注意 根据要存储的信息 选择合适的数据类型与名称
public class People {
int id;
String name;
int age;
}
C:创建类对象 完成数据存储
类名 变量名=new 类名();
public class textPeople {
public static void main(String[] args) {
People p1= new People();
p1.id=1;
p1.name="张三";
p1.age=18;
System.out.println(p1.id);
}
}
9.2 类中的函数
1声明函数
public class People {
public void foo(){
System.out.println("你好 函数");
}
}
// 声明格式:修饰符 返回值类型 函数名 (){
//代码块;
// }
2函数调用
public class textPeople {
public static void main(String[] args) {
People p1= new People();
p1.foo();
}
}
•返回值格式
1无返回值:
修饰符 返回值类型 函数(){代码块}
2 有返回值:
修饰符 具体的数据类型 函数(){
代码块;
return 数据(要遵循类型匹配原则 与返回值数据类型相同)
}
•参数和返回值都是数据传递的方式:
如果需要调用方 传递数据到执行方 就通过 参数的形式
如果需要 执行方 传递数据到调用方 就通过返回值形式
9.3 对象封装值get方法
1声明函数
public class People {
public void foo(){
System.out.println("你好 函数");
}
}
// 声明格式:修饰符 返回值类型 函数名 (){
//代码块;
// }
2函数调用
public class textPeople {
public static void main(String[] args) {
People p1= new People();
p1.foo();
}
}
•返回值格式
1无返回值:
修饰符 返回值类型 函数(){代码块}
2 有返回值:
修饰符 具体的数据类型 函数(){
代码块;
return 数据(要遵循类型匹配原则 与返回值数据类型相同)
}
•参数和返回值都是数据传递的方式:
如果需要调用方 传递数据到执行方 就通过 参数的形式
如果需要 执行方 传递数据到调用方 就通过返回值形式
9.3 对象封装值get方法
1 为什么要用get函数:
此时我们将成员变量私有化 通过set函数进行赋值,我们的对象 是 要对数据进行存取 存是通过set 取此时无法完成
所以我们需要一个get函数 用来获取对象 私有化成员变量
2 如何使用get函数解决问题?
public int getAge(){
return age;
}
对象封装
封装,即隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别:
将抽象的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合,形参“类”,其中数据和函数都是类的成员
set函数
可以在里面假如判断语句方便调用
Java权限修饰符
public 公共修饰符 在当前工程的不同包中都可以访问 修饰内容: 外部类 成员变量 函数
protected 包权限和继承权限 访问级别是在同一个包中可以访问,如果不在同一个包中有继承关系也可以访问 修饰内容:成员变量 函数
default/friendly 包权限 注意 不是写default关键字才代表默认权限,而是什么关键字都不写的情况下 代表默认权限: 访问级别是在同一个包中可以访问
修饰内容:外部类 成员变量 函数
private 私有权限 访问级别是在当前类的内部可以访问 修饰内容:成员变量 函数



