首页 > 编程语言 >关于Java中的类和对象笔记

关于Java中的类和对象笔记

时间:2024-09-11 18:36:53浏览次数:9  
标签:arr Java Cust 对象 子类 笔记 static public name

什么是对象:在现实世界中,随处可见的一种事物就是对象。

面向对象的特点:封装性、继承性、多态性

1.1 封装(思想):对象的属性和行为封装起来,载体即为类。保存类数据结构的完整性,提高了程序的可维护性。

1.2 继承:可以继承父类的行为和属性,其中还可以添加独特的属性及行为。可复用性强,提高系统性能,减少系统在使用过程中出现的错误概率。

1.3 多态:父类的对象运用于子类特征

1.4 类:成员变量

`package Demo01;

public class Book {
private String name; //成员变量
public String getName(){ //获取图书方法
return name;
}
public void setName(){ //设置设置图书
this.name = name;
}
}
`
1.5 成员方法

权限修饰符 返回值类型 方法名(参数类型 参数名){
...//方法体
return 返回值;
}

1.6 权限修饰符

private: 本类中是可见的,同包和其他类或子类不可见,其他包的类或者子类是不可见的。
protect: 本类中是可见的,同包和其他类或子类可见,其他包的类或者子类是不可见的。
public: 本类中是可见的,同包和其他类或子类可见,其他包的类或者子类是可见的。

1.7 局部变量的使用

`package Demo01;

public class ChangeDemo {
public static int[] exchange(int[] arr){
int temp = arr[0];
arr[0] = arr[1];
arr[1] = temp;
return arr;
}

public static void main(String[] args) {
    int arr[] = {1,2};
    System.out.println("第一个值为"+ arr[0] + "第二个值为" + arr[1]);
    arr = exchange(arr);
    System.out.println("第一个值为"+ arr[0] + "第二个值为" + arr[1]);
}

}
`

1.8 this关键字

特点:只能用于本类。可以调用成员变量和成员方法。

对象.成员变量 对象.成员方法

1.9 构造方法

特点:构造方法没有返回值、构造方法名称要与本类的名称相同。

`package Demo01;

public class Eggcake {
int eggCount; //鸡蛋灌饼的个数
public Eggcake(int eggCount){
this.eggCount = eggCount; //将参数值eggcount的值赋值给成员变量属性eggcount
}
public Eggcake(){ //定义一个无参构造方法,默认加一个鸡蛋
//调用参数为鸡蛋饼里蛋的个数,并设置个数为1
this(1);
}

public static void main(String[] args) {
    Eggcake cake1 = new Eggcake();
    System.out.println("不要求加,会有"+cake1.eggCount);
    Eggcake cake2 = new Eggcake(2);
    System.out.println("要求加,会有" + cake2.eggCount);
}

}
`
2.1 静态变量和静态方法

static关键字特点:设置为静态,共享一个内存空间,被声明为static的变量和方法被称为静态成员。

`package Demo01;

public class Cust {
static int count = 0;
String name;
public Cust(String name){
this.name = name;
count++;
}

public static void main(String[] args) {
    Cust c1 = new Cust("tom");
    System.out.println("我是第" + Cust.count + "名顾客,我叫" + c1.name);
    Cust c2 = new Cust("tim");
    System.out.println("我是第" + Cust.count + "名顾客,我叫" + c2.name);
    Cust c3 = new Cust("tny");
    System.out.println("我是第" + Cust.count + "名顾客,我叫" + c3.name);
}

}
`
总结:在静态方法中不能使用this关键字、不可以直接调用非静态方法、局部变量不能使用static关键字进行声明、主方法必须用static关键字进行声明、只有内部类可以使用static关键字进行声明。

标签:arr,Java,Cust,对象,子类,笔记,static,public,name
From: https://www.cnblogs.com/TangTangNour/p/18401414

相关文章

  • C++:类与对象——详解多态原理、虚函数和抽象类
    1.多态基本内容C++中的多态是面向对象编程的一个重要特性,指的是同一个函数或对象在不同的情况下可以表现出不同的行为。多态通常通过继承和虚函数来实现。它分为两种类型:编译时多态(静态多态)和运行时多态(动态多态)。多态分为两类:静态多态:函数重载和运算符重载属于静态......
  • Logstash 配置Java日志格式的方法
    Logstash是用于日志收集的开源工具,通常与Elasticsearch和Kibana一起使用,形成ELKStack(现在称为ElasticStack)。Logstash非常灵活,可以通过配置文件(通常是.conf文件)来定义数据的输入、处理和输出。对于处理Java日志,一个常见的场景是解析Java应用生成的日志文件(如使用......
  • web 开发(5)- HttpRequest对象
    json发送数据接收数据defjson(request):body=request.body#print(body)body_str=body.decode()print(body_str)print(type(body_str))importjsonbody_dict=json.loads(body_str)print(body_dict)returnHttpResponse('json')请求代码SessionSession......
  • 【学习笔记】SSL证书密码套件之加密
    本篇将介绍密码套件中加密常用的协议并将他们进行比较,包括:CHACHA20、AES-256-GCM、AES-128-GCM、AES-256-CBC、AES-128-CBC、3DES-CBC、RC4-128、DES-CBC一、概念(选择以上合适协议)对称加密算法目的是保护批量数据传输流密码(StreamCiphers)CHACHA20、RC4-128StreamCi......
  • 使用Java实现字符串中的表达式计算
    /***计算字符串表达式的值,不支持小数*<ul>*<li>加法('+')</li>*<li>减法('-')</li>*<li>乘法('*')</li>*<li>除法,保留两位小数('/')</li>*<li>取余,获取商('......
  • Ethereum学习笔记 ---- 使用 Remix 调试功能理解 bytes 在 memory 中的布局
    目录编写合约编译、部署、调用合约调试交易1.调用函数bytesInMemory(),分析bytes的MemoryLayout执行RETUR前的最后一刻,stack快照如下执行完毕时刻的MemoryLayout对MemoryLayout的分析2.调用函数bytesArrayInMemmory(4),分析bytes[]的MemoryLayout执行RETUR前......
  • PHP8面向对象快速入门六 trait
    PHP中的trait是一种代码复用机制,允许你在多个类中共享方法而无需使用继承。与类和接口不同,trait不能实例化,也不能定义构造函数或属性。trait中不能有常量。可以在一个类中使用多个trait,并在trait中定义公共的方法,这样可以避免代码重复.。trait中可使用抽象方法trait中可......
  • 软件测试学习笔记丨Docker 安装、管理、搭建服务
    本文转自测试人社区,原文链接:https://ceshiren.com/t/topic/32192容器(Docker)技术的价值保证环境一致性,只要使用相同镜像部署就可以保证一致性。轻量级虚拟化访问,运行更快,资源更小。同时也可以荣期间的隔离性。封装部署的负载型,云原生与微服务的首选技术方案。未来测试人员必学的技术......
  • JavaScript 中处理接口之字段处理(1)
     遍历 res1.data(假设它是一个数组)中的所有对象并添加两个字段的方法:letres=awaitgetData({});if(Array.isArray(res.data)){for(letitemofres1.data){item.newField1='newvalue1';item.newField2='newvalue2';}WIFIList.value=res.data......
  • 二项式反演学习笔记
    前言万字长文!这里有我的一些思考和领会,网络上的教程都太潦草了。并且我发现了新的反演公式!概述二项式反演用于转化两个具有特殊关系的函数\(f\)和\(g\),从而方便求解问题。一般来说,直接计算恰好满足\(n\)个限制的答案不好求,但是可以计算出“至少”/“至多”满足\(n\)......