java中类 声明函数定义变量_【Java学习】数组的使用|类的定义|对象|匿名函数|封装...

心得感悟

今天的内容也大多都是概念文字,要消化和领悟还是要靠自己多多思考,还好在我多次百度+问老师后,我终于还是理解了。虽然我学习东西没有其他人那么快,多花点时间还是能赶得上的。复习完回过头再看今天的内容,又觉得简单了许多。在计算机这条学习路上,我的心真是起起落落落落落落落落落落落落起,但世上无难事,只怕有心人,还是加油吧!

1. 目的

一、加深数组和类的使用熟练度

二、了解类和对象

三、了解对象的内存表现

四、了解成员方法

五、通过知识点讲解和编程,领悟C语言和Java的区别

2. 内容简概

⼀、数组的两种定义⽅式

⼆、数组定义之后在内存中的表现形式

三、数组的基本使⽤

四、遍历数组的三种⽅式

五、使⽤数组实现猜数字

六、类和对象的概念

七、类的定义

八、对象的创建

九、创建对象的内存表现

十、成员⽅法的声明和访问

十一、匿名对象

十二、封装

3. 具体内容

⼀、数组的两种定义⽅式

① 静态:定义时直接赋值

int[] score = {1, 2, 3};

String[] names = {"jack", "merry"};

②动态:先定义,内容可以动态添加

float[] height = new float[5];

height[0] = 165.5f;

height[1] = 170f;

⼆、数组定义之后在内存中的表现形式

d0c5152ab41b

其实有一点俄罗斯套娃的感觉

三、数组的基本使⽤

Random r = new Random();

int[] count = new int[10];

for (int i = 0;i < 10;i++){

count[i] = r.nextInt(100);

}

四、遍历数组的三种⽅式

//数组输出方式1

for (int i = 0;i < count.length;i++){

System.out.print(count[i]+" ");

}

System.out.print("\n");

//数组输出方式2

for (int temp: count){

System.out.print(temp + " ");

}

System.out.print("\n");

//数组输出方式3

System.out.println(Arrays.toString(count));

d0c5152ab41b

三种方式的数组输出效果

五、使⽤数组实现猜数字

1.代码示范

class GuessNumber{

public static void main(String[] args){

//保存原始数字

int[] org = new int[4];

//保存用户猜测数字

int[] guess = new int[4];

//产生四个随机数

Random random = new Random();

for (int i=0;i < 4;i++){

//产生一个随机数

int temp =random.nextInt(10);

//判断是否重复

boolean result = contains(org,temp);

if (result){

i--;

}else{

org[i] = temp;

}

}

//排序

Arrays.sort(org);

System.out.println(Arrays.toString(org));

//开始游戏

Scanner scanner = new Scanner(System.in);

while (true){

int countA = 0;

int countB = 0;

System.out.print("请输入猜测数字:");

for (int i = 0;i<4;i++){

guess[i] = scanner.nextInt();

}

//判断用户输入

//1.判断是否存在

for (int i = 0;i<4;i++){

boolean result = contains(guess,org[i]);

if (result){

//数字存在

//判断位置是否相同

int index = indexOf(guess,org[i]);

if (index == i){

//数字位置都相同

countA++;

}else {

countB++;

}

}

}

if (countA ==4){

System.out.println("恭喜答对!");

break;

}else {

System.out.println(countA+"A"+countB+"B");

}

}

}

public static int indexOf(int[] val,int obj){

for (int i =0;i

if (val[i] == obj){

return i;

}

}

return -1;

}

//自己写一个方法判断某个数组里是否包含某个值

public static boolean contains(int[] val,int obj) {

for (int i = 0; i < val.length; i++) {

if (val[i] == obj) {

//重复了

return true;

}

}

return false;

}

}

2.程序运行效果

d0c5152ab41b

Java版猜数字游戏.gif

六、类和对象的概念

简单的说,类就是一个概念,是抽象的。而对象是具体的某一个事物。举个例子,我们说的“人类”就是一个类,它是我们规定的一个概念,而“王小明”就是一个对象,他是一个具体的事物。

一个类中可以有多个方法,方法外的变量有“类变量”和“成员变量”,方法中的变量有“局部变量”,“成员变量”一般定义在类的最上面。而方法操作对象,一个类中可以有多个对象。类其实就是封装,把方法对象打包起来。

变量类型

定义

局部变量

在方法、构造方法或者语句块中定义的变量被称为局部变量。变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁

成员变量

成员变量是定义在类中,方法体之外的变量。这种变量在创建对象的时候实例化。成员变量可以被类中方法、构造方法和特定类的语句块访问

类变量

类变量也声明在类中,方法体之外,但必须声明为static类型

七、类的定义

通常情况下,一个文件夹对应一个类,以下为定义类的格式:

修饰符 class 类名{

这个类的一些属性:成员变量

这个类的功能:方法

}

修饰符用来定义类、方法或者变量,通常放在语句的最前端。在此只讲解访问控制修饰符,类型及定义如下:

类型

定义

public

公有的,对所有类可见

private

私有的,只能自己使用,外部无法访问(同一类中可见)

protected

受保护的,对同一包内的类和所有子类可见

default

(即默认,什么也不写)在同一包内可见,不使用任何修饰符

八、对象的创建

对象是根据类创建的。在Java中,使用关键字new来创建一个新的对象。创建对象需要以下三步:

1. 声明:声明一个对象,类名+对象名,如下:

public class Puppy{

public static void main(String args[]){

Puppy myPuppy; //对象声明

}

}

2. 实例化:使用关键字new来创建一个对象。

3. 初始化:使用new创建对象时,会调用构造方法初始化对象。

myPuppy = new Puppy(); //创建并初始化对象

数据类型

char

float

double

int

long

short

byte

boolean

初始化的值

' '

0.0

0.0

0

0

0

0

false

九、创建对象的内存表现

d0c5152ab41b

如图

十、成员⽅法的声明和访问

1. 方法的定义 public static final private

语法格式:

权限修饰符 返回值类型 方法名(参数类型 参数名) {

// 方法

// 返回值

}

public void test(){

System.out.println("没有返回值,没有方法");

}

public void test2(){

//在自己的类里面可以调用这个类里的所有资源

//this.test();不建议这么写

test();

}

2. 方法的访问

//没有返回值 接收一个参数

public void test3(String name){

}

//有一个参数 有一个返回值

public int test4(String name){

return 0;

}

//有多个参数 用逗号隔开

public int test5(String name,int age){

return 0;

}

//可变参数 相当于数组

public int test6(int ... counts){

int sum = 0;

for (int i = 0;i < counts.length;i++){

sum += counts[i];

}

return sum;

}

}

十一、匿名对象

1. 定义:没有名字的对象,如:

class TestClass{

new test().age = 10; //匿名对象

public int test(){

int age;

}

}

2.匿名对象的用法

①只使用对象一次

②作为参数传递

show(new Car());

十二、封装

1. 定义:把私有的东西包装、隐藏起来,不让外部使用

2. 优点:

①良好的封装能够减少耦合。

②类内部的结构可以自由修改。

③ 可以对成员变量进行更精确的控制。

④ 隐藏信息,实现细节。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值