首页 > 编程语言 >【学懂Java】(四)面向对象编程-1

【学懂Java】(四)面向对象编程-1

时间:2023-01-19 13:31:27浏览次数:44  
标签:stu1 Java String 对象 System 学懂 面向对象编程 println out

一.OOP:Object Oriented Programming

【学懂Java】(四)面向对象编程-1_对象和类

1.面向过程和面向对象


面向过程

面向对象

区别

事物比较简单,可以用线性的思维去解决

事物比较复杂,使用简单的线性思维无法解决

共同点

1.面向过程和面向对象都是解决实际问题的一种思维方式

2.二者相辅相成,并不是对立的。解决复杂问题,通过面向对象方式便于我们从宏观上把握事物之间复杂的关系、方便我们分析整个系统;具体到微观操作,仍然使用面向过程方式来处理

2.举例

如何吃午饭

面向过程


面向对象

买菜

洗菜

点火

......

吃饭

饭店

厨师

在饭店吃厨师做好的饭

二.对象和类

  1. 世界由对象组成
  2. 类可以生成对象
  3. 类是对象的抽象,对象是类的实例化

对象和类的概念

  • 对象:是具体的事物
  • 类:是对象的抽象

先有具体的对象,然后抽象各个对象之间象的部分,归纳出类通过类再认识其他对象。

三.对象的特征

1.属性

属性——对象具有的各种特征

每个对象的每个属性都拥有特定值

2.方法

方法——对象执行的操作

对象:用来描述客观事物的一个实体,由一组属性和方法构成

【学懂Java】(四)面向对象编程-1_对象和类_02

四.类的特征

1.属性

属性(field),或者叫成员变量

▪属性用于定义该类或该类对象包含的数据或者说静态属性。属性作用范围是整个类体。在定义成员变量时可以对其初始化,如果不对其初始化,Java使用默认的值对其初始化。(数值:0,0.0    char:\u0000,    boolean:false,    所有引用类型:null)

▪属性定义格式:

[修饰符] 属性类型 属性名 = [默认值]

2.方法

面向对象中,整个程序的基本单位是类,方法是从属于对象的

方法定义格式:

[修饰符] 方法返回值类型 方法名(形参列表 ) {
// n条语句
}

JAVA中方法参数传递是:值传递!

【学懂Java】(四)面向对象编程-1_对象和类_03

public class Student 
{
//定义属性
int StuNumber;
String name;
int age = 20;
//定义方法
void study()
{
System.out.println("学习不要谈恋爱");
}
void play()
{
System.out.println("只学习不玩耍,聪明孩子也变傻");
}
void eat(String food)
{
System.out.println("吃"+food);
}
}

但是大家要注意,不是每一个类都有方法和属性

五.创建和使用对象

既然已经创建了一个类,那就需要学习如何创建一个对象:

new关键字来创建一个对象:​​类名 对象名 = new 类名()​

对象的使用:​​对象名称.属性​​​​对象名称.方法​

public class Student
{
//定义属性
int StuNumber;
String name;
int age;
//定义方法
void study()
{
System.out.println("学习不要谈恋爱");
}
void play()
{
System.out.println("只学习不玩耍,聪明孩子也变傻");
}
void eat(String food)
{
System.out.println("吃"+food);
}

public static void main(String[] args)
{
Student stu1 = new Student();
System.out.println("默认值");
System.out.println(stu1.name);
System.out.println(stu1.age);
System.out.println(stu1.StuNumber);
stu1.study();
stu1.eat("peach");
stu1.name = "Jack";
System.out.println("录入值");
//修改属性值
stu1.StuNumber = 2023119;
stu1.age = 18;
System.out.println(stu1.name);
System.out.println(stu1.age);
System.out.println(stu1.StuNumber);
stu1.study();
stu1.eat("peach");
stu1.name = "Jack";
}
}

【学懂Java】(四)面向对象编程-1_面向对象_04

可以类别之前学习的C语言结构体

六.案例

输入管理员名称和密码,正确才有权限更新,错误次数超过三次显示锁定。

import java.net.SocketTimeoutException;
import java.util.Scanner;

public class Administrator {

String loginName = "ak27";
String password = "12345";

public void introduce(){
System.out.println(loginName);
System.out.println((password));
}

public static void main(String[] args) {
Administrator admin = new Administrator();
int count = 0;
for(count=0; ; count++) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入用户名:");
String name = sc.nextLine();
System.out.println("请输入密码:");
String psd = sc.nextLine();
if (name.equals(admin.loginName) && psd.equals(admin.password)) {
System.out.println("密码以及用户名正确");
System.out.println("请输入新的用户名");
admin.loginName=sc.nextLine();
System.out.println("请输入新的密码");
admin.password=sc.nextLine();
break;
}
else {
int left = 2 - count;
if (count == 2) {
System.out.println("密码或用户名错误超过三次,系统锁定");
break;
}
System.out.println("密码或用户名错误,还有" + left + "次机会");
}
}
}
}

案例中在进行字符串比较时,使用的是equals。

字符串在进行比较时,==比较的是地址,equals比较的是具体的值。


练习:尝试将下述代码设计的更加符合事实:例如设密码要重复输入两次

import java.net.SocketTimeoutException;
import java.util.Scanner;

public class Administrator {

String loginName = "ak27";
String password = "12345";

public void introduce(){
System.out.println(loginName);
System.out.println((password));
}

public static void main(String[] args) {
Administrator admin = new Administrator();
int count = 0;
for(count=0; ; count++) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入用户名:");
String name = sc.nextLine();
System.out.println("请输入密码:");
String psd = sc.nextLine();
if (name.equals(admin.loginName) && psd.equals(admin.password)) {
System.out.println("密码以及用户名正确");
System.out.println("请输入新的用户名");
admin.loginName=sc.nextLine();
System.out.println("请输入新的密码");
admin.password=sc.nextLine();
break;
}
else {
int left = 2 - count;
if (count == 2) {
System.out.println("密码或用户名错误超过三次,系统锁定");
break;
}
System.out.println("密码或用户名错误,还有" + left + "次机会");
}
}
}
}




















标签:stu1,Java,String,对象,System,学懂,面向对象编程,println,out
From: https://blog.51cto.com/u_15796276/6020077

相关文章

  • java.lang.UnsupportedClassVersionError
    一般是版本不兼容Exceptioninthread"main"java.lang.UnsupportedClassVersionError:org/eclipse/swt/events/ShellListenerhasbeencompiledbyamorerecentver......
  • Java零基础09篇:while循环和案例
    文章目录​​一、while结构(掌握)​​​​while循环完整格式:​​​​while循环执行流程:​​​​示例代码:​​​​二、while循环练习-珠穆朗玛峰(应用)​​​​需求:世界最高山峰......
  • Java零基础07篇:switch语句以及案例
    文章目录​​一、switch语句结构(本阶段需要掌握)​​​​格式:​​​​执行流程:​​​​二、小练习-春夏秋冬​​​​需求:一年12个月分属于春夏秋冬4个季节,键盘录入一个月份,用......
  • Java零基础06篇:流程控制语句应用篇
    文章目录​​前言​​​​一、流程控制语句分类​​​​二、顺序结构​​​​三、分支结构之if语句​​​​if语句格式1:​​​​if语句格式2:​​​​if语句案例:奇偶数​​​......
  • mac M2 卸载java
    如果是brew安装卸载brewuninstalljava手动安装卸载sudorm-fr/Library/Internet\Plug-Ins/JavaAppletPlugin.pluginsudorm-fr/Library/PreferencesPanes/Ja......
  • java学习 javaz-001 Helloworld 第一个demo
    java学习javaz-001Helloworld第一个demo学习目标搞一个java的小demo,最后开发完成,双击bat文件可以执行,发给别人也可以执行。前期准备我的当前环境是win11所以我下的......
  • Java零基础08篇:for循环和案例
    文章目录​​一、for循环和案例​​​​循环:​​​​for循环格式:​​​​二、for循环练习-输出数据(应用)​​​​需求:在控制台输出1-5和5-1的数据​​​​三、for循环练习-求......
  • JavaWeb(二)
    6、Servlet6.1、Servlet简介Servlet是sun公司用于开发动态web的一门技术sun公司在这些API中提供的一个叫做Servlet的接口编写一个类,实现Servlet接口把开发好的java类部署到w......
  • Java知识总结,不止为了秋招(上)!!!
    文章目录​​1、Java基础​​​​2、Java进阶​​​​3、数据库​​​​4、前端​​​​5、JavaWeb​​​​6、SSM框架​​​​7、JVM​​​​8、SpringBoot框架​​​​9......
  • 如何通过Java应用程序将 PDF转为Word文档
    众所周知,PDF文档除了具有较强稳定性和兼容性外, 还具有较强的安全性,在工作中可以有效避免别人无意中对文档内容进行修改。但与此同时,也妨碍了对文档的正常的修改。这时我......