当前位置:网站首页>类和对象的学习
类和对象的学习
2022-06-26 05:42:00 【王小小鸭】
什么是对象和类?
万物皆对象,客观存在的事物皆为对象
类:类是对现实生活中一类具有共同属性和行为的事物的抽象
对象:是能够看得到摸的着的真实存在的实体
类是对象的抽象
对象是类的实体
属性:对象具有的各种特征,每个对象的每个属性都拥有特定的值
行为:对象能够执行的操作
类的特点:
- 类是对象的数据类型
- 类是具有相同属性和行为的一组对象的集合
比如手机这个概念是一个类,因为手机具有共同属性:内存多少、屏幕大小、价格高低、品牌……
也有共同行为:可以接打电话、可以收发短信、可以听音乐……
类的定义
类的重要性:是Java程序的基本组成单位
类是什么:是对现实生活中一类具有共同属性和行为的事物的抽象,确定对象将会拥有的属性和行为。
类的组成:属性和行为
- 属性:在类中通过成员变量来体现(类中方法外的变量)
- 行为:在类中通过成员方法来体现(和前面的方法相比去掉static关键字即可)
类的定义步骤:
publicclass 类名 {
// 成员变量
变量1的数据类型 变量1;
变量2的数据类型 变量2;
…
// 成员方法
方法1;
方法2;
…
}
类名:手机(Phone)
成员变量:品牌(brand) 价格(price)
成员方法:打电话(call) 发短信(sendMessage)
package object;
/*手机类:
类名:
手机(Phone)
成员变量:
品牌(brand)
价格(price)
成员方法:
打电话(call)
发短信(sendMessage)*/
//类的定义步骤;
//定义类
public class Phone {
//编写类的成员变量
String brand;
int price;
// 编写类的成员方法
public void call(){
System.out.println("打电话");
}
public void sendMessage(){
System.out.println("发短信");
}
}对象的使用
创建对象
格式:类名 对象名 = new 类名();
范例:Phone p = new Phone();
使用对象
1:使用成员变量
- 格式:对象名.变量名
- 范例:p.brand
2:使用成员方法
- 格式:对象名.方法名()
- 范例:p.call()
案例:
package object;
public class PhoneDemo {
public static void main(String[] args) {
/*创建对象
格式:类名 对象名 = new 类名();*/
Phone p = new Phone();
/*使用对象
1:使用成员变量
格式:对象名.变量名*/
System.out.println(p.brand);
//调用变量brand,因为未赋值,此时返回堆堆内存默认值,String类型默认值“null”
System.out.println(p.price);
//price同上,int类型默认值“0”
//如果赋值
p.brand = "华为";
p.price = 2999;
//再次输出
System.out.println(p.brand);
System.out.println(p.price);
/*2:使用成员方法
格式:对象名.方法名()*/
p.call();
p.sendMessage();
}
}
输出结果:
null
0
华为
2999
打电话
发短信
需求:首先定义一个学生类,然后定义一个学生测试类,在学生测试类中通过对象完成成员变量和成员方法的使用
分析:
成员变量:姓名,年龄…
成员方法:学习,做作业…
思路:
类名:Student
成员变量:name,age
成员方法:study(),doHomework()
类名:StudentDemo
因为要做测试,所以有一个主方法:main方法
给成员变量赋值,输出成员变量的值
调用成员方法
package com.object_02;
//创建学生类
public class Student {
//成员变量
String name;
int age;
//成员方法
public void study(){
System.out.println("好好学习,天天向上");
}
public void doHomework(){
System.out.println("键盘敲烂,月薪过万");
}
}
package com.object_02;
//学生测试类
public class StudentDemo {
public static void main(String[] args) {
//创建对象
Student s = new Student();
//使用对象(此时输出的是默认值)
System.out.println(s.name+","+s.age);
//赋值
s.name = "陈睿";
s.age = 44;
//再次输出
System.out.println(s.name+","+s.age);
//使用方法
s.study();
s.doHomework();
}
}

边栏推荐
- Security problems in wireless networks and modern solutions
- pytorch(环境、tensorboard、transforms、torchvision、dataloader)
- 11 IO frame
- [activity recommendation] cloud native, industrial Internet, low code, Web3, metauniverse... Which is the architecture hot spot in 2022
- 12 multithreading
- ZigBee learning in simple terms Lecture 1
- 最后一次飞翔
- Daily production training report (15)
- Some doubts about ARP deception experiment
- cartographer_ local_ trajectory_ builder_ 2d
猜你喜欢

【C语言】深度剖析数据在内存中的存储

小小面试题之GET和POST的区别

How does P2P technology reduce the bandwidth of live video by 75%?

Could not get unknown property ‘*‘ for SigningConfig container of type org. gradle. api. internal

怎么把平板作为电脑的第二扩展屏幕

Command line interface of alluxio

工厂方法模式、抽象工厂模式

基于SDN的DDoS攻击缓解

Uni app ceiling fixed style

The difference between get and post in small interview questions
随机推荐
Supplementary course on basic knowledge of IM development (II): how to design a server-side storage architecture for a large number of image files?
Summary of the 10th provincial Blue Bridge Cup
力扣 875. 爱吃香蕉的珂珂
使用Jedis监听Redis Stream 实现消息队列功能
The news of thunderbolt
RIA想法
Red team scoring method statistics
Installation and deployment of alluxio
Chapter 9 setting up structured logging (I)
vscode config
Describe an experiment of Kali ARP in LAN
Data storage: the difference between MySQL InnoDB and MyISAM
Customize WebService as a proxy to solve the problem of Silverlight calling WebService across domains
SQL query time period content
Consul服务注册与发现
【 langage c】 stockage des données d'analyse approfondie en mémoire
使用Jedis監聽Redis Stream 實現消息隊列功能
Leetcode513.找出树的左下角的值
Mongodb image configuration method
[arm] build boa based embedded web server on nuc977