java零碎

本文介绍了Java编程的基础知识,包括命名规则、关键字、变量赋值、运算符、方法、数组、面向对象的三大特征(封装、继承、多态)、封装的概念、构造方法、抽象类与接口的区别、内部类以及面向对象的优势与缺点。通过实例展示了如何创建对象、使用成员变量和方法,以及如何通过继承和多态实现代码复用和扩展。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、java基础

1、规则

2.常量 大写

3.关键字小写

4.标识符不能是关键字

5.包名小写 类或接口 首字母大写

6.方法,变量 第一个单词小写,第二个单词首字母大写

7.static没有创建类对象情况下。任然可以运行

8.变量 先定义,后赋值 int x,int y x=14 y=8

9.赋值运算符 c+=a 等于c=c+a c*=b等于c*b

10.方法

形参:走个形式 数据虚假 实参:实际数据表

有返回值类型 无返回值类型 有参无返回值方法(参数构成的方法)

有参有返回值方法(数据灵活,操作结果)

只完成某个功能,代码中某些值不需要动,结果不需要操作-----无参无返回值方法
完成某个功能,代码中某些值不需要动,结果需要操作----无参有返回值方法 
     完成功能---无参无返回值类型方法
     结果需要操作---无参有返回值方法
     完成功能,代码中的值需要动,结果不需要操作---有参无返回值方法
     完成功能,代码中值需要动,结果需要操作---有参有返回值方法
     参数要和返回值类型一致
public static int getSum(int a, int b) {
    return a + b;
}
无参有返回值方法
求两个数的和
public int  sumWuYou(){
	int num1 = 10 ;
	int num2 = 20 ;
	int sum=num1+num2;
	return sum;		
}
有参无返回值方法
求两个数的和
参数:
  num1 整数数值1
  num2 整数数值2
public void  sumYouWu(int num1,int num2){
	int sum=num1+num2;
	System.out.println(sum);		
}
有参有返回值方法
求两个数的和
参数:
  num1 整数数值1
  num2 整数数值2
public int  sumYouYou(int num1,int num2){
	int sum=num1+num2;
	return sum;		
}

方法重载:在同一个类中,方法名字一样,参数个数或者类型不一样的一组方法

11.数组

由多个元素构成的一个整体,多个数据,数据类型必须一致

数组就是存储数据长度固定的容器,保证多个数据的数据类型要一致。

例如:水杯 小分子是元素,多个小分子,形成一杯水
例如:教室 多名学生形成一个教室 学生是元素

数组好处:给存储进来的元素自动进行编号

arr[0]=10;   10:就是元素1          11:元素2     12:元素3
arr[1]=11;     arr[0]自动排序加1的:数组0索引 
arr[2]=12;     arr[1]=11:数组1索引上的元素11

索引访问数组中的元素:

​ 数组名[索引]=数值,为数组中的元素赋值
​ 变量=数组名[索引],获取出数组中的元素

数组练习

public static void main(String[] args) { 
	int[] arr = { 5, 15, 2000, 10000, 100, 4000 }; //定义变量,保存数组中0索引的元素
	int max = arr[0]; //遍历数组,取出每个元素
	for (int i = 0; i < arr.length; i++) {//遍历到的元素和变量max比较
   	 	//如果数组元素大于max
		if (arr[i] > max) { //max记录住大值
			max = arr[i]; 
		} 
	}
	System.out.println("数组最大值是:" + max(1000); //索引4
}

12.字符数组

char[] arr = {'a', 'b', 'c', '4', '5'};//类似于单个英文字母

字符串数组//好比成语

 String[] arr = {"aaa", "bbb", "cccc", "ddd", "eee"};

13.面向对象

三大特征:封装 继承 多态

类是对象的抽象,是对一堆有共同的特点的事物的描述,是概念,定义。

对象是某类的具体体现,实例对象,有名有性完整的人。

先定义类,类去创对象,对象完成任务。

大众汽车—汽车类

黑猫,具体实例化对象—猫类

这个黑猫是这个类的一个对象

有名有性完整的人

public  class Person{

String  name;

int age;//name和age都是属性

}
Person(){//构造方法  给属性赋值,好比灵魂,而不是光肉身

name="ZhangSan";

age=23

}

对象的创建及使用
//创建对象
类名 对象名 = new 类名();

​ Person p = new Person();//这就创建了一个Person对象

//好比 person是类 p是张三

​ //对象是证明这个类的存在

//调用属性和方法 好比 通过张三调个人资料
对象名.属性;
对象名.方法(); //张三的擅长

14.张三的全部资料

//创建Person对象       叫什么名字
		Person p = new Person();
		//查看p的年龄
		int age = p.age;
		System.out.println("年龄为:" + age);
		//修改p的年龄为20岁
		p.age = 20;
		System.out.println("修改之后的年龄为:" + p.age);
		//调用方法,查看p的所有属性
		p.show();

new Person().show();匿名对象,没有名字

定义一个类,可以有属性、方法、构造方法、成员方法等内容。这里的属性又叫做成员变量

成员变量:一个人的变化性,不停蜕变,不是死的

比如:

成员变量就是:小孩的年龄 成人的年龄,不确定性

15.封装pravite(自私的)

快递不打包,很容易损坏,而且客户隐私也无法保障;如果银行是开放的,不仅容易出错,还容易出现安全问题。所以,我们需要封装。

//保护人的利益,隐私,好比保镖 不暴露自己的弱点

//大众化的可访问 隐私的不能访问

protected 修饰时 ,允许子类调用 , private修饰时, 阻止其他类创建该类的对象

//protected 只能直系访问自己的隐私

隐藏类的 实现细节,对外暴露 公共的 访问方式(set和get方法)

公开:public

私密:private

部分:default

16.this关键字

this,就是自己,this所调用的,就是自己的东西

//this我自己拿我自己的东西

17.定义Student封装类

//一个完整的Student(学生类),封装后如下
public class Student {
    private String name;//姓名
    private int age;//年龄
    private String major;//专业

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public int getAge() {
    return age;
}

public void setAge(int age) {
    if (age > 0) {//加一个判断,更严谨
        this.age = age;
    }
}

public String getMajor() {
    return major;
}

public void setMajor(String major) {
    this.major = major;
}

public void study() {
    System.out.println(this.name + "在学习");//输出:XX在学习(这里的XX就是当前调用方法的学生的名字)
}
}

调用Student类;

//封装:也就是一个人可以有很多不同的个性化特点和技能

     Student stu = new Student();//构造一个Student对象
        stu.setName("小明");
        stu.setAge(18);
        stu.setMajor("物联网");
        System.out.println("学生的名字是:"+stu.getName());
   stu.study();//调用study方法

创建小明这个相当于有参构造{public Person(int age,float height,String name)}

Person person4 = new Person(“小明”,150);

构造方法//好比出生婴儿

分为有参构造和无参构造//好比取名字,上户口,买衣服

​ 作用:创建对象

​ 创建对象执行对应的构造方法

​ 完成类的初始化(给成员变量赋值化)

标准封装类的编写(好比完整的一个什么都有的正常人)

私有化成员变量(个性化特点),提供公共的访问方式(多和别人交流)提供方法(一个人必备技能)空参构造(备用,防止出意外),全参构造

18.继承关系也就是多态的一种体现

super();用于继承关系//用父类的一切东西

super用法

​ a. super()调用——父类构造器。

​ b. super.方法()——调用父类方法。

​ c. super.属性——调用父类属性。

继承中的关系

子类继承父类,调用属性流程

首先在子类局部范围找。

然后在子类成员范围找。

最后在父类成员范围找

构造方法的关系

子类中所有构造方法默认访问父类中空参数的构造方法

子类继承父类的数据,还会使用父类的数据,,子类初始化前,一定要确保完成父类所有数据的初始化

注意!!!继承关系中,子类继承父类,只要每一个构造方法第一条默认初始化数据都是super

//子类可以继承父类的所有优点,子类还可以更完美

19.多态(感觉人的不同情绪不同表现)

多态格式 父类类型 变量名=new 子类对象

变量名.方法名()

表现形式:继承或实现

​ 方法必须重写(不重写,无意义)

父类类型:子类对象继承的父类的类型,或实现父接口类型

Fu f=new Zi()

f.method()

多态成员特点:多态调方法时,检查父类中是否有此方法,没有,报错

有,执行子类重写后方法

定义父类//一类事物中,能证明该类的方法

public abstract class Animal {
	public abstract void eat();
}

定义子类//除了说明是一类事物,还有自己的个性化方法

class Cat extends Animal {
	public void eat() { 
		System.out.println("吃鱼"); 
	}
}


class Dog extends Animal {
	public void eat() { 
		System.out.println("吃骨头");
	}
}

向上转型:黑猫本来就是猫

向下转型:豹(特别声明也是猫类)

使用向上转型:Animal a=new Cat()

使用向下转型格式:Cat c=(Cat) a;

20.抽象类:
不需要实例化对象的任何证明(空口无凭)

abstract写在class前

抽象方法:abstract写在修饰符后,比如public abstract void 方法名 ()

抽象类的特点:

不能被实例化

有抽象方法才是抽象类,抽象类不一定有抽象方法

抽象类子类

普通类----完全实现父类的抽象方法

抽象类----没完全实现父类的抽象方法

抽象类成员

抽象类的构造器只用于子类访问父类数据的初始化功能

抽象类的成员与普通类的成员一致,只是抽象类中多了一个抽象方法

抽象方法使用可以强制子类完成某些动作,也可以使用普通方法提高代码复用性

抽象只对对象使用,不能和private static final关键字一起使用

共同体行为为:父类

(小狗小猫是动物类,抽象出父类Animal,不同动物不同吃的行为,父类对方法抽象化)

共同体行为的不同行为为:子类

子类继承父类,重写方法,实现不同需求

(子类继承父类,重写抽象方法,实现动物不同吃的食物不同的需求)

21.接口(扩展功能)

具备特殊独一无二额外技能的。接口与类之间关键字:implements

接口多态:接口由具体子类实例化

接口子类:要么为抽象类,要么重写接口中的所有抽象方法

类,接口等的区别

类与类之间是单继承,也可以多层继承(族谱)

类与接口可以单实现,也可以多实现,还能继承同一个类同时实现多个接口

同时实现多个接口,接口和接口之间 “,”逗号隔开

接口与接口之间:继承关系,可以单继承,也可以多继承

抽象父类:祖先的企业,由实现类继承

接口:任意位置添加,对类,接口功能是扩展

abstract class和interface有什么区别
两者都是抽象类,都不能实例化。
interface实现类及abstrct class的子类都必须要实现已经声明的抽象方法
interface需要实现,要用implements
abstract class需要继承,要用extends。一个类可以实现多个interface,但一个类只能继承一个abstract class。interface强调特定功能的实现,而abstract class强调所属关系。

抽象类和接口:
1、抽象类:abstract修饰符的class即为抽象类,abstract 类不能创建实例对象。有abstract方法的类必须定义为abstract class,abstract class类中的方法不一定是抽象的,也有普通的。abstract class类中定义抽象方法必须在具体(Concrete)子类中实现,所以不能有抽象构造方法或抽象静态方法。如果子类没有实现抽象父类中的所有抽象方法,那么子类也必须定义为abstract类型。
2、接口(interface)可以说成是抽象类的一种特例,接口中的所有方法都必须是抽象的。接口中的方法定义默认为public abstract类型,接口中的成员变量类型默认为public static final。
而接口主要是为了代码复用与功能的扩展;
3:一个类可以实现多个接口,而只能继承一个抽象类。并且抽象类中可以有静态方法,普通成员变量和构造方法,而接口中不可以;

Type与Class的区别:
首先Type是Class的父接口。而Class是Type的子类。
其次Type是Class的父接口。
Type可以表示出泛型的类型,而Class不能
Type 是 Java 编程语言中所有类型的公共高级接口。它们包括原始类型、参数化类型、数组类型、类型变量和基本类型。

22. 包:
就是不同的文件夹

打包:package   com.jiyun.chouxiang;    编译后代码自动放入这个包名里

23.内部类:

通过外部类调里面的具体一个类去实现功能

比如:工具箱平时需要的工具都放里了,但是当工具箱被使用于具体场景,比如拧螺丝,肯定会打开工具箱找出里面的螺丝刀,然后去使用螺丝刀,假设工具箱是一个类,将螺丝刀比作它里面的类,这就构成 内部类

内部类特点:

内部类是外部类的一个成员,内部类自由访问外部类成员

内部类声明静态,不能访问外部类成员了,此时内部类只能访问外部类的静态成员(静态访问静态)

面向对象:其实对象是类的抽象概念 ,也就是起一个名字,我们可以按照各种不同的功能,方法,模块,业务逻辑等分别起名,分别归类,使用此对象名调用该对象所代表的类中的不用函数也就是代码块,其中就是我们分开写的各种不同的方法,业务了逻辑等。
优点:易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统 更加灵活、更加易于维护
缺点:性能比面向过程低

面向过程:其实就是在一个类中将所有的模块、功能、业务逻辑等按照执行顺序依次从上到下的书写并执行。
优点:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源;
缺点:没有面向对象易维护、易复用、易扩展;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值