【狂神说Java】Java零基础学习笔记-面向对象

面向对象01:什么是面向对象

面向过程&面向对象

  • 面向过程思想

    • 步骤清晰简单,第一步做什么,第二步做什么....
    • 面对过程适合处理一些较为简单的问题
  • 面向对象思想
    • 物以类聚,分类的思维模式,思考问题首先会解决问题需要哪些分类,然后对这些分类进行单独思考。最后,才对某个分类下的细节进行面向过程的思索。
    • 面向对象适合处理复杂的问题,适合处理需要多人协作的问题!
  • 对于描述复杂的事物,为了从宏观上把握、从整体上合理分析,我们需要使用面向对象的思路来分析整个系统。但是,具体到微观操作,仍然需要面向过程的思路去处理。

什么是面向对象

  • 面向对象编程(Object-Oriented Programming, OOP)
  • 面向对象编程的本质就是:以类的方式组织代码,以对象的组织(封装)数据。
  • 抽象:编程思想!持续的学习,茅塞顿开!多实践,多测试大脑中的想法!实践出真知~
  • 三大特性:
    • 封装
    • 继承
    • 多态
  • 从认识论角度考虑是先有对象后有类。对象,是具体的事物。类,是抽象的,是对对象的抽象
  • 从代码运行角度考虑是先有类后有对象。类是对象的模板。

面向对象02:回顾方法的定义

回顾方法及加深

  • 方法的定义

    • 修饰符
    • 返回类型
    • break:跳出switch,结束循环 和 return的区别
    • 方法名:注意规范就OK 见名知意
    • 参数列表:(参数类型,参数名)...
    • 异常抛出:疑问,后面讲解
  • 方法的调用:递归
    • 静态方法
    • 非静态方法
    • 形参和实参
    • 值传递和引用传递
    • this关键字
package com.oop.demo01;

import java.io.IOError;
import java.io.IOException; //Demo01 类
public class Demo01 {
//main 方法
public static void main(String[] args) { } /*
修饰符 返回值类型 方法名(...){
//方法体
return 返回值;
}
*/
//return 结束方法,返回一个结果!
public String sayHello(){
return "hello,world";
} public void print(){
return;
} public int max(int a,int b){
return a>b ? a : b; //三元运算符!
} //数组下标越界: Arrayindexoutofbounds public void readFile(String file) throws IOException{ }
}

面向对象03:回顾方法的调用

package com.oop.demo01;

public class Demo02 {
public static void main(String[] args) {
// //静态方法 static
// Student.say(); //非静态方法
//实例化这个类 new
//对象类型 对象名 = 对象值;
Student student = new Student();
student.say();
} //static和类一起加载的
public static void a(){
//b();
} //类实例化 之后才存在
public void b(){ }
} 学生说话了
package com.oop.demo01;

//学生类
public class Student {
// //静态方法
// public static void say(){
// System.out.println("学生说话了");
// } //非静态方法
public void say(){
System.out.println("学生说话了");
}
}
package com.oop.demo01;

public class Demo03 {
public static void main(String[] args) {
//实际参数和形式参数的类型要对应!
int add = Demo03.add(1,2);
System.out.println(add);
} public static int add(int a,int b){
return a+b;
}
} 3
package com.oop.demo01;

//值传递
public class Demo04 {
public static void main(String[] args) {
int a = 1;
System.out.println(a); //1 Demo04.change(a);
System.out.println(a); //1
} //返回值为空
public static void change(int a){
a = 10;
}
} 1
1
package com.oop.demo01;

//引用传递:对象

//对象,内存!

public class Demo05 {
public static void main(String[] args) {
Perosn perosn = new Perosn();
System.out.println(perosn.name); //null Demo05.change(perosn);
System.out.println(perosn.name); //黎明の微笑
} public static void change(Perosn perosn){
//perosn是一个对象,指向的--->Perosn perosn = new Perosn(); 这是一个具体的人,可以改变属性!
perosn.name = "黎明の微笑";
}
} //定义了一个Perosn类,有一个属性:name
class Perosn{
String name; //null
} null
黎明の微笑

面向对象04:类与对象的创建

类与对象的关系

  • 类是一种抽象的数据类型,它是对某一类事物整体描述/定义,但是并不能代表某一个具体的事物.

    • 动物、植物、手机、电脑......
    • Person类、Pet类、Car类等,这些类都是用来描述/定义某一类具体的事物应该具亩的特点和行为
  • 对象是抽象概念的具体实例

    • 张三就是人的一个具体实例,张三家里的旺财就是狗的一个具体实例。

    • 能够体现出特点,展现出功能的是具体的实例,而不是一个抽象的概念.

我们可以将这些思想转换为代码实现!

创建与初始化对象

  • 使用new关键字创建对象
  • 使用new关键字创建的时候,除了分配内存空间之外,还会给创建好的对象进行默认的初始化以及对类中构造器的调用。
  • 类中的构造器也称为构造方法,是在进行创建对象的时候必须要调用的。并且构造器有以下俩个特点:
    • 1.必须和类的名字相同
    • 2.必须没有返回类型,也不能写void
  • 构造器必须要掌握
package com.oop.demo02;

//学生类
public class Student {
//属性:字段
String name; //null
int age; //0 //方法
public void study(){
System.out.println(this.name+"在学习");
}
} //Person ---> 身高,体重,年龄,国家
//学程序好?对世界进行更好的建模! --->宅! --->音乐,旅游,出国!
package com.oop.demo02;

//一个项目应该只存一个main方法
public class Application {
public static void main(String[] args) {
//类:抽象的,实例化
//类实例化后会返回一个自己的对象!
// student对象就是一个student类的具体实例! Student xiaoming = new Student();
Student xh = new Student(); xiaoming.name = "小明";
xiaoming.age = 3; System.out.println(xiaoming.name);
System.out.println(xiaoming.age); xh.name = "小红";
xh.age = 3; System.out.println(xh.name);
System.out.println(xh.age);
}
} 小明
3
小红
3

面向对象05:构造器详解

package com.oop.demo02;

//java ---> class
public class Person {
//一个类即使什么都不写,它也会存在一个方法
//显示的定义构造器
String name;
int age; //alt + insert //实例化初始值
//1.使用new关键字,本质是在调用构造器
//2.用来初始化值
public Person(){ } //有参构选:一旦定义了有参构造,无参就必须显示定义
public Person(String name){
this.name = name;
} public Person(String name, int age) {
this.name = name;
this.age = age;
}
} /*
public static void main(String[] args) {
//new 实例化了一个对象
Person person = new Person("liming",23); System.out.println(person.name); //liming
}
*/ /*
构造器:
1.和类名相同
2.没有返回值
作用:
1.new本质在调用构造方法
2.初始化对象的值
注意点:
1.定义有参构造之后,如果想使用无参构造,显示的定义一个无参的构造 ALt + Insert this. =
*/

面向对象06:创建对象内存分析

package com.oop.demo03;

public class Pet {
public String name;
public int age; //无参构造 public void shout(){
System.out.println("叫了一声");
}
} /*
public static void main(String[] args) {
Pet dog = new Pet(); dog.name = "旺财";
dog.age = 3;
dog.shout(); System.out.println(dog.name);
System.out.println(dog.age); Pet cat = new Pet();
}
*/

面向对象07:简单小结类与对象

/*
1.类与对象
类是一个模板:抽象,对象是一个具体的实例
2.方法
定义、调用!
3.对应的引用
引用类型: 基本类型(8)
对象是通过引用来操作的:栈 ---> 堆
4.属性:字段 Field 成员变量
默认初始化:
数字:0 0.0
char:u0000
boolean:false
引用:nuLL
修饰符 属性类型 属性名 = 属性值!
5.对象的创建和使用
- 必须使用 new 关键字创造对象,构造器 Person kuangshen = new Person();
- 对象的属性 kuangshen.name
- 对象的方法 kuangshen.sleep()
6.类
静态的属性 属性
动态的行为 方法 `封装、继承、多态`
*/

面向对象08:封装详解

封装

  • 该露的露,该藏的藏

    • 我们程序设计要追求“高内聚,低耦合”。高内聚就是类的内部数据操作细节自己完成,不允许外部干涉;低耦合:仅暴露少量的方法给外部使用。
  • 封装(数据的隐藏)
    • 通常,应禁止直接访问一个对象中数据的实际表示,而应通过操作接口来访问,这称为信息隐藏。
  • 记住这句话就够了:属性私有,get/set
package com.oop.demo04;

//类     private:私有
public class Student {
//属性私有
private String name; //名字
private int id; //学号
private char sex; //性别
private int age; //年龄 //提供一些可以操作这个属性的方法!
//提供一些 public 的 get、set 方法 //get 获得这个数据
public String getName(){
return this.name;
} //set 给这个数据设置值
public void setName(String name){
this.name = name;
} //alt + insert public int getId() {
return id;
} public void setId(int id) {
this.id = id;
} public char getSex() {
return sex;
} public void setSex(char sex) {
this.sex = sex;
} public int getAge() {
return age;
} public void setAge(int age) {
if (age>120 || age<0){ //不合法
this.age = 3;
}else {
this.age = age;
}
}
} /*
1. 提高程序的安全性,保护数据
2. 隐藏代码的实现细节
3. 统一接口
4. 系统可维护增加了
*/ /*
public static void main(String[] args) {
Student s1 = new Student(); s1.setName("黎明の微笑");
System.out.println(s1.getName()); s1.setAge(-1); //不合法的
System.out.println(s1.getAge());
}
*/

面向对象09:什么是继承

继承

  • 继承的本质是对某一批类的抽象,从而实现对现实世界更好的建模。

  • extends的意思是“扩展”。子类是父类的扩展。

  • JAVA中类只有单继承,没有多继承!一个儿子只能有一个爸爸,但是一个爸爸可以有多个儿子

  • 继承是类和类之间的一种关系。除此之外,类和类之间的关系还有依赖、组合、聚合等。

  • 继承关系的俩个类,一个为子类(派生类)一个为父类(基类)。子类继承父类,使用关键字extends来表示。

  • 子类和父类之间,从意义上讲应该具有"is a"的关系。

  • object类

  • super

  • 方法重写:重点--->多态

package com.oop.demo05;

//在Java中,所有的类,都默认直接或者间接继承Object
//Person 人 : 父类
public class Person /*extends Object*/ {
//public
//protected
//default
//private
private int money = 10_0000_0000; public void say(){
System.out.println("说了一句话");
} public int getMoney() {
return money;
} public void setMoney(int money) {
this.money = money;
}
} /*
ctrl + H 树
*/ /*
public static void main(String[] args) { Person person = new Person(); Student student = new Student();
student.say();
System.out.println(student.getMoney());
}
*/
package com.oop.demo05;

//Student is 人 : 派生类,子类
//子类继承了父类,就会拥有父类的全部方法!
public class Student extends Person {
}
package com.oop.demo05;

//Teacher is 人 : 派生类,子类
public class Teacher extends Person {
}

面向对象10:Super详解

super注意点:

  1. super 调用父类的构造方法,必须在构造方法的第一个
  2. super 必须只能出现在子类的方法或者构造方法中!
  3. super 和 this不能同时调用构造方法!

Vs this:

代表的对象不同:

​ this:本身调用者这个对象

​ super:代表父类对象的应用

前提

​ this:没哟继承也可以使用

​ super:只能在继承条件才可以使用

构造方法

​ this();本类的构造

​ super();父类的构造!

package com.oop.demo05;

public class Person /*extends Object*/ {
public Person() {
System.out.println("Person无参执行了");
} // public Person(String name) {
// System.out.println("Person有参执行了");
// } protected String name = "liming"; //私有的东西无法被继承!
public void print(){
System.out.println("Person");
} } /*
public static void main(String[] args) {
Student student = new Student(); //student.test1(); //student.test("微笑"); }
*/
package com.oop.demo05;

public class Student extends Person {
public Student() {
//隐敲代码:调川了父类的无参构选
super(); //调用父类的构造器,必须要在子类构造器的第一行
//this("hello");
System.out.println("Student无参执行了"); // super("name");
// System.out.println("Student有参执行了");
} public Student(String name) {
this.name = name;
} private String name = "weixiao"; public void print(){
System.out.println("Student");
} // public void test1(){
// print(); //Student
// this.print(); //Student
// super.print(); //Person
// } // public void test(String name){
// System.out.println(name); //微笑
// System.out.println(this.name); //weixiao
// System.out.println(super.name); //liming
// }
}

面向对象11:方法重写

重写:需要有继承关系,子类重写父类的方法!

​ 1.方法名必须相同

​ 2.参数列表列表必须相同

​ 3.修饰符:范围可以扩大但不能缩小: public>Protected>Default>private

​ 4.抛出的异常:范围,可以被缩小,但不能扩大; ClassNotFoundException ---> Exception(大)

重写,子类的方法和父类必要一致;方法体不同!

为什么需要重写:

​ 1.父类的功能,子类不一定需要,或者不一定满足!Alt + Insert ; override;

package com.oop.demo05;

//重写都是方法的重写,和属性无关
public class B {
// public static void test(){
// System.out.println("B=>test()");
// } public void test(){
System.out.println("B=>test()");
}
} /*
//静态的方法和非静态的方法区别很大!
//静态方法://方法的调用只和左边,定义的数据类型有关
//非静态:重写 public static void main(String[] args) {
A a = new A();
a.test(); //A //父类的引川指向了子类
B b = new A(); //子类重写了父类的方法
b.test(); //B
}
*/
package com.oop.demo05;

//继承
public class A extends B {
// public static void test(){
// System.out.println("A=>test()");
// } //Override 重写
@Override //注解:有功能的注释!
public void test() {
System.out.println("A=>test()");
}
}

面向对象12:什么是多态

多态

  • 即同一方法可以根据发送对象的不同而采用多种不同的行为方式。
  • 一个对象的实际类型是确定的,但可以指向对象的引用的类型有很多(父类,有关系的类)
  • 多态存在的条件
    • 有继承关系
    • 子类重写父类方法
    • 父类引用指向子类对象
  • 注意:多态是方法的多态,属性没有多态性。
  • instanceof (类型转换) 引用类型,判断一个对象是什么类型~
package com.oop.demo06;

public class Person {
public void run(){
System.out.println("run");
}
} /*
多态注意事项:
1. 多态是方法的多态,属性没有多态
2. 父类和子类,有联系类型转换异常! ClassCastException!
3. 存在条件:继承关系,方法需要重写,父类引用指向子类对象! Father f1 = new Son(); 1. static 静态方法,属于类,它不属于实例
2. final 常量;
3. private 私有方法;
*/ /*
public static void main(String[] args) {
//一个对象的实际类型是确定的
//new Student();
//new Person(); //可以指向的引川类型就不确定了:父类的引用指向子类 //Student 子类型,能调用的方法都是自己的或者然承父类的!
Student s1 = new Student();
//Person 父类型,可以指向了类,但是不能调用子类独有的方法
Person s2 = new Student();
Object s3 = new Student(); //对象能执行哪些方法,主要看对象左边的类型,和右边关系不大!
s2.run(); //子类重写了父类的方法,执行子类的方法
s1.run(); //s2.eat();
((Student) s2).eat();
s1.eat();
}
*/
package com.oop.demo06;

public class Student extends Person {
@Override
public void run() {
System.out.println("son");
} public void eat(){
System.out.println("eat");
}
}

面向对象13:instanceof和类型转换

package com.oop.demo06;

public class Person {
public void run(){
System.out.println("run");
}
} /*
public static void main(String[] args) {
//Object > Person > Student
//Object > Person > Teacher
//Object > String //System.out.println(X instanceof Y); //能不能编译通过! Object object = new Student();
System.out.println(object instanceof Student); //true
System.out.println(object instanceof Person); //true
System.out.println(object instanceof Object); //true
System.out.println(object instanceof Teacher); //false
System.out.println(object instanceof String); //false
System.out.println("===================="); Person person = new Student();
System.out.println(person instanceof Student); //true
System.out.println(person instanceof Person); //true
System.out.println(person instanceof Object); //true
System.out.println(person instanceof Teacher); //false
//System.out.println(person instanceof String); //编译报错!
System.out.println("===================="); Student student = new Student();
System.out.println(student instanceof Student); //true
System.out.println(student instanceof Person); //true
System.out.println(student instanceof Object); //true
//System.out.println(student instanceof Teacher); //编译报错!
//System.out.println(student instanceof String); //编译报错!
}
*/ /*
public static void main(String[] args) {
//类型之间的转化:父 子 // //高 低
// Person obj = new Student();
//
// //student将这个对象转换为Student类型,我们就可以使川Student类型的方法了!
// Student student = (Student) obj;
// student.go();
// //((Student) obj).go(); //子类转换为父类,可能丢失自己的本来的一些方法!
Student student = new Student();
student.go();
Person person = student;
}
*/ /*
1. 父类引用指向子类的对象
2. 把子类转换为父类,向上转型;
3. 把父类转换为子类,向下转型; 强制转换
4. 方便方法的调用,减少重复的代码!简介 封装、继承、多态! 抽象类,接口
*/
package com.oop.demo06;

public class Student extends Person {
public void go(){
System.out.println("go");
}
}
package com.oop.demo06;

public class Teacher extends Person {

}

面向对象14:static关键字详解

package com.oop.demo07;

//static
public class Student {
private static int age; //静态的变量 多线程!
private double score; //非静态的变量 public void run(){ } public static void go(){ } public static void main(String[] args) {
// Student s1 = new Student();
//
// System.out.println(Student.age);
// //System.out.println(Student.score);
// System.out.println(s1.age);
// System.out.println(s1.score); //run();
go();
}
}
package com.oop.demo07;

public class Person {
//2:赋初值~
{
//代码块(匿名代码块)
System.out.println("匿名代码块");
} //1:只执行一次~
static {
//静态代码块
System.out.println("静态代码块");
} //3
public Person() {
System.out.println("构造方法");
} public static void main(String[] args) {
Person person1 = new Person();
System.out.println("====================");
Person person2 = new Person();
}
} 静态代码块
匿名代码块
构造方法
====================
匿名代码块
构造方法
package com.oop.demo07;

//静态导入包~
import static java.lang.Math.random;
import static java.lang.Math.PI; public class Test {
public static void main(String[] args) {
System.out.println(random());
System.out.println(PI);
}
}

面向对象15:抽象类

抽象类

  • abstract修饰符可以用来修饰方法也可以修饰类,如果修饰方法,那么该方法就是抽象方法;如果修饰类,那么该类就是抽象类。
  • 抽象类中可以没有抽象方法,但是有抽象方法的类一定要声明为抽象类。
  • 抽象类,不能使用new关键字来创建对象,它是用来让子类继承的。
  • 抽象方法,只有方法的声明,没有方法的实现,它是用来让子类实现的。
  • 子类继承抽象类,那么就必须要实现抽象类没有实现的抽象方法,否则该子类也要声明为抽象类。
package com.oop.demo08;

//abstract 抽象类:类 extends    单继承~    (接口可以多继承)
public abstract class Action {
//约束~有人帮我们实现~
//abstract 抽象方法,只有方法名字,没有方法的实现!
public abstract void doSomething(); //1. 不能new这个抽象类,只能靠子类去实现它;约束!
//2. 抽象类中可以写普通的方法~
//3. 抽象方法必须在抽象类中~
//抽象的抽象:约束~ //思考题?
//new,存在构造器么? (存在)
//抽象类存在的意义 抽象出来~ 提高开发效率
}
package com.oop.demo08;

//抽象类的所有方法,继承了它的子类,都必须要实现它的方法~ 除非子类也是抽象的(abstract)~
public class A extends Action {
@Override
public void doSomething() { }
}

面向对象16:接口的定义与实现

接口

  • 普通类:只有具体实现
  • 抽象类:具体实现和规范(抽象方法)都有!
  • 接口:只有规范!自己无法写方法专业的约束!约束和实现分离:面向接口编程
  • 接口就是规范,定义的是一组规则,体现了现实世界中“如果你是...则必须能…”的思想。如果你是天使,则必须能飞。如果你是汽车,则必须能跑。如果你好人,则必须干掉坏人;如果你是坏人,则必须欺负好人。
  • 接口的本质是契约,就像我们人间的法律一样。制定好后大家都遵守。
  • OO的精髓,是对对象的抽象,最能体现这一点的就是接口。为什么我们讨论设计模式都只针对具备了抽象能力的语言(比如c++、java、c#等),就是因为设计模式所研究的,实际上就是如何合理的去抽象。

声明类的关键字是class,声明接口的关键字是interface

作用:
1. 约束
2. 定义一些方法,让不同的人实现~ 10 ---> 1
3. public abstract
4. public static final
5. 接口不能被实例化~,接口中没有构造方法~
6. implements可以实现多个接口
7. 必须要重写接口中的方法~
8. 总结博客~
package com.oop.demo09;

//抽象的思维~ Java 架构师~

//interface 定义的关键字 , 接口都需要有实现类
public interface UserService {
//常量~ public static final
int AGE = 99; //接口中的所有定义的方法其实都是抽象的 public abstract
void add(String name);
void delete(String name);
void update(String name);
void query(String name);
}
package com.oop.demo09;

//抽象类:extends~
//类 可以实现接口 implements 接口
//父现了接口的类,就需要重写接口中的方法~ //多继承~利用接口实现多继承~
public class UserServiceImpl implements UserService,TimeService {
@Override
public void add(String name) { } @Override
public void delete(String name) { } @Override
public void update(String name) { } @Override
public void query(String name) { } @Override
public void timer() { }
}
package com.oop.demo09;

public interface TimeService {
void timer();
}

面向对象17:N种内部类

内部类

  • 内部类就是在一个类的内部在定义一个类,比如,A类中定义一个B类,那么B类相对A类来说就称为内部类,而A类相对B类来说就是外部类了。
  • 1.成员内部类
  • 2.静态内部类
  • 3.局部内部类
  • 4.匿名内部类
package com.oop.demo10;

public class Outer {
private int id=10; public void out(){
System.out.println("这是外部类的方法");
} public class Inner{
public void in(){
System.out.println("这是内部类的方法");
} //获得外部类的私有属性~
public void getID(){
System.out.println(id);
}
} //局部内部类
public void method(){
class Inner{
public void in(){ }
}
}
} //一个java类中可以有多个class类,但是只能有一个public class
class A{
public static void main(String[] args) { }
} /*
public static void main(String[] args) {
//new
Outer outer = new Outer(); //通过这个外部类来实例化内部类~
Outer.Inner inner = outer.new Inner();
inner.in();
inner.getID();
}
*/
package com.oop.demo10;

public class Test {
public static void main(String[] args) {
//没有名字初始化类,不用将实例保存到变量中~
new Apple().eat();
UserService userService = new UserService() { @Override
public void hello() { } };
}
} class Apple{
public void eat(){
System.out.println("1");
}
} interface UserService{
void hello();
}

【【狂神说Java】Java零基础学习视频通俗易懂】https://www.bilibili.com/video/BV12J41137hu?p=60&vd_source=fd5defd6aaa826e3b6e0c06073353e32

【狂神说Java】Java零基础学习笔记-面向对象的更多相关文章

  1. CSS零基础学习笔记.

    酸菜记 之 CSS的零基础. 这篇是我自己从零基础学习CSS的笔记加理解总结归纳的,如有不对的地方,请留言指教, 学前了解: CSS中字母是不分大小写的; CSS文件可以使用在各种程序文件中(如:PH ...

  2. 《Java并发编程的艺术》第4章 Java并发编程基础 ——学习笔记

    参考https://www.cnblogs.com/lilinzhiyu/p/8086235.html 4.1 线程简介 进程:操作系统在运行一个程序时,会为其创建一个进程. 线程:是进程的一个执行单 ...

  3. Spark (Python版) 零基础学习笔记(一)—— 快速入门

    由于Scala才刚刚开始学习,还是对python更为熟悉,因此在这记录一下自己的学习过程,主要内容来自于spark的官方帮助文档,这一节的地址为: http://spark.apache.org/do ...

  4. Spark (Python版) 零基础学习笔记(二)—— Spark Transformations总结及举例

    1. map(func) 将func函数作用到数据集的每个元素,生成一个新的分布式的数据集并返回 >>> a = sc.parallelize(('a', 'b', 'c')) &g ...

  5. python基础学习笔记——面向对象初识

    面向对象初识 python中一切皆对象. 类有两种: 新式类:在py3中所有类都是新式类 经典类:在py2中只有类本身继承了object类才叫做新式类,默认是经典类 class Person: cou ...

  6. 音乐出身的妹纸,零基础学习JAVA靠谱么

    问:表示音乐出身的妹纸一枚  某一天突然觉得身边认识的是一群程序员   突然想 要不要也去试试... 众好友都觉得我该去做个老师,可是我怕我会误人子弟,祸害祖国下一代..... 要不要 要不要 学Ja ...

  7. 尚学堂JAVA基础学习笔记

    目录 尚学堂JAVA基础学习笔记 写在前面 第1章 JAVA入门 第2章 数据类型和运算符 第3章 控制语句 第4章 Java面向对象基础 1. 面向对象基础 2. 面向对象的内存分析 3. 构造方法 ...

  8. Java基础学习笔记总结

    Java基础学习笔记一 Java介绍 Java基础学习笔记二 Java基础语法之变量.数据类型 Java基础学习笔记三 Java基础语法之流程控制语句.循环 Java基础学习笔记四 Java基础语法之 ...

  9. Java基础学习笔记(一)

    Java基础学习笔记(一) Hello World 基础代码学习 代码编写基础结构 class :类,一个类即一个java代码,形成一个class文件,写于每个代码的前端(注意无大写字母) XxxYy ...

  10. 总结了零基础学习Java编程语言的几个基础知识要点

    很多Java编程初学者在刚接触Java语言程序的时候,不知道该学习掌握哪些必要的基础知识.本文总结了零基础学习Java编程语言的几个基础知识要点. 1先了解什么是Java的四个方面   初学者先弄清这 ...

随机推荐

  1. Nuxt.js 应用中的 app:templatesGenerated 事件钩子详解

    title: Nuxt.js 应用中的 app:templatesGenerated 事件钩子详解 date: 2024/10/19 updated: 2024/10/19 author: cmdra ...

  2. 云原生周刊:CNCF 宣布 KubeEdge 毕业

    云原生周刊:CNCF 宣布 KubeEdge 毕业 开源项目推荐 Watchtower Watchtower 这个项目能够自动监测并更新正在运行的 Docker 容器.它会定期检查并拉取 Docker ...

  3. Linux基础-学会使用命令帮助

    概述 使用 whatis 使用 man 查看命令程序路径 which 总结 参考资料 概述 Linux 命令及其参数繁多,大多数人都是无法记住全部功能和具体参数意思的.在 linux 终端,面对命令不 ...

  4. C240817D. 模拟赛:树上dp(以i为起点)+set操作

    C240817D. 模拟赛 比较显然的树上dp, 但是维护set比较烦 考场上其实自己是定义 \(f[i]\) 是以 \(i\) 结尾, 然后这样的话单次更新根本做不到 \(O(logN)\). 反应 ...

  5. c语言里关于本地变量的一些规则

    关于块的定义(自己的理解):就是☞{ }这个区域里面的东西以及" {} "这个符号的本身 ·本地的变量是定义在块内的 -->>1.它可以定义在函数的块内 void sw ...

  6. 3-5&&6 C++数组遍历

    遍历二维数组的三种方式 #include<iostream> #include<string> #include<vector> using namespace s ...

  7. C++学习——访问修饰符

    一.类是什么 类是C++当中的一个集合,定义了"属性",通过类可以实例化对象,此时对象的属性就囊括在这个类当中.比如: class student { public: string ...

  8. 超详细 HarmonyOS 开发教程之开发环境搭建指南

    HarmonyOS开发环境搭建指南:DevEco Studio安装教程 一.系统要求 操作系统:Windows 10 64位或更高版本 RAM:至少8GB,推荐16GB 硬盘空间:至少10GB可用空间 ...

  9. uni-app PDA扫描

    1.前言 PDA扫码是工厂项目中是非常常见的功能,这里记录下工作中的开发思路和模板,仅供参考 PDA扫码模式:模拟输入和广播模式 模拟输入:模拟键盘输入,一般后面会设置追加一个回车,优点是通用型强,缺 ...

  10. Node.js Express 框架(1)

    1.Express介绍 Express 是一个简洁而灵活的 node.js Web应用框架, 提供了一系列强大特性帮助你创建各种 Web 应用,和丰富的 HTTP 工具. Express的特点: 实现 ...