java数组

文章目录

  • java面向对象初步认识
    • 软件开发
    • 面向对象和面向过程
      • 对象
    • 对象和类
      • 类的定义
      • 类和对象的练习
    • 类的方法
      • 类的方法的练习

java面向对象初步认识

软件开发

软件开发分为了结构化开发和面向对象开发
结构化开发:面向功能划分软件的结构、自顶向下、最小的子系统是方法,结构化开发因为针对的是用户提出的功能,由于用户的需求不断升级改变,相应的方法也需要更改,所以这种结构化开发不利于维护和扩展软件
而面向对象开发(OOP)就大不相同,它是将软件系统看成是各种对象的集合,由于用户的需求不断的升级,但是对象没有变化,所以有很强的可重用性和维护性

面向对象和面向过程

面向对象和面向过程都是对软件分析,开发,设计的一种思想,它们指导人用不同的方式分析、设计、开发软件。面向过程适合简单的任务,不需要过多的协作的情况下,将步骤对应为方法,一步一步的实现。而面向对象更适合人们的思维,可以从宏观上把握、从整体上分析整个系统。但是具体的实现的部分仍然需要使用面向过程的思想去处理。
面向对象具有三大特征:封装性、继承性和多态性,而面向过程没有继承性和多态性,并且面向过程的封装只是封装功能,而面向对象可以封装数据和功能。所以面向对象优势更明显。
面向对象和面向过程是相辅相成的。

对象

对象就是也是一种对数据的管理模式,它是将数据和数据的行为放置在了一起,在内存上对象就是一个内存块,存放了相关的数据集合,他的本质就是一种数据的组织方式。
例如一个学生对象就有以下属性:

姓名:张三
年龄:18
学号:123456
行为:学习,考试

就像这样,将相关的数据和相关的方法封装到一个独立的实体中区,对象就诞生了。

对象和类

类叫class,对象叫object或者是instance(实例),某个类的对象和某个类的实例是一样的意思。对象是具体的事物,类只是对对象的抽象。类可以看成一类对象的模板,对象可以看成这个类的一个具体的实例。类是用来描述同一类对象的一个抽象概念,它定义了这一类对象中的所具有的属性和方法。对象是用来描述客观事物的一个实体,由一组属性和方法组成

类的定义
  • 格式是:

public class 类名{
属性;
方法;
}

public class Car{//每一个源文件中必须有且只有一个public class,并且类名和文件名保持一致
}
class Type{//一个java文件可以同时定义多个class
}
class play{}

在定义类的时候要定义类的属性(静态特征),属性作用在整个类体中,属性定义格式是

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

在类中定义了属性(静态特征)还不够,这个类中还要有方法,因为方法是定义这个类的一些行为特征和功能的实现。拿一个学生类来说,属性就相当于学生的身高、姓名、体重、学号、成绩、班级等等,而方法是这个学生类会做什么事情,比如说学习、考试、玩游戏等等。方法定义的格式是:

[修饰符]  方法返回值类型  方法名(形参列表) {// n条语句
}
  • 使用对象的步骤:

类名 对象名 = new 类名();
引用对象成员:使用"."进行以下操作,
引用类的属性:对象名.属性
引用类的方法:对象名称.方法名();

package day02.dh;public class Student {//属性fieldint id;String name;int age;Computer computer;//计算机//方法methodvoid study() {System.out.println("认真学习,使用的电脑是" + computer.brand);}void play() {System.out.println("玩游戏");}//构造方法,用来创建这个类的对象,无参的构造方法可以由系统自动创建Student() {//方法名必须和类名保持一致}//程序执行的入口,必须要有public static void main(String[] args) {Student stu = new Student();//创建一个对象stu.id = 1001;stu.name = "张三";stu.age = 19;Computer c1 = new Computer();c1.brand = "戴尔";stu.computer = c1;stu.play();stu.study();}
}
//类和类之间都是可以相互引用的
class Computer {String brand;
}

这种将代码写入一个文件的格式针对于代码过多不便于观察,所以考虑使用分文件编写,在一个文件夹中写类,在另一文件夹中写main方法调用类的模板。

  • 声明一个Person类包含姓名,性别,年龄等成员属性,还有吃喝,自我介绍等成员方法
package Class.dh;
//人类:抽象的模板
public class Person {//属性(成员变量):姓名 性别 年龄public String name;public char sex;public int age;//方法(成员方法):吃 喝 自我介绍public void eat() {System.out.println("我正在吃饭");}public void drink() {System.out.println("我正在喝水");}public void showInfo() {System.out.println("我叫" + name + "我是" + sex + "我今年" + age + "岁了");}
}

再调用Person类的模板并创建一个person对象并且赋值

package instance.dh;
import Class.dh.Person;
//根据Person类创建具体的对象
public class PersonTest {public static void main(String[] args) {//创建person对象:Person类的实例化//创建人类对象:类名 对象名 = new 类名();Person person = new Person();//调用对象的属性和方法person.name = "张三";person.sex = 'm';person.age = 12;//调用对象的方法person.eat();person.drink();person.showInfo();}
}
类和对象的练习
  • 创建一个Student类,其中属性包括姓名 年龄 兴趣爱好,方法包括输出个人信息,并创建一个student对象赋值并输出
package Class.dh;
//学生类
public class Student {//属性:姓名 年龄 爱好public String name;public int age;public String love;//方法:输出个人信息public void showInfo() {System.out.println("我叫" + name + "现在" + age + "岁了" + "我的兴趣爱好是" + love);}
}
package instance.dh;import Class.dh.Student;public class StudentTest {public static void main(String[] args) {Student student = new Student();student.name = "张三";student.age = 18;student.love = "篮球";student.showInfo();}
}
  • 定义一个Teacher类并创建一个teacher对象并输出基本信息
package Class.dh;//老师类
public class Teacher {//属性:姓名 性别 专业 教授课程 教龄public String name;public char sex;public String profession;public int age;public String course;public void showInfo() {System.out.println("我是" + name);System.out.println("我的性别是" + sex);System.out.println("我的年龄是" + age);System.out.println("我的专业是" + profession);System.out.println("我教授的课程是" + course);}
}
package instance.dh;import Class.dh.Teacher;public class TeacherTest {public static void main(String[] args) {Teacher teacher = new Teacher();teacher.name = "李四";teacher.sex = '男';teacher.course = "java程序设计";teacher.age = 16;teacher.profession = "计算机";teacher.showInfo();}
}

类的方法

类的方法定义类的某种行为或者是功能
方法的模板:

public 返回值类型 方法名(){
这里编写的是方法的主体
}

如果方法具有返回值,方法中必须使用关键字return返回该值,返回值类型为该值的类型,返回值只可以有一个,如果方法没有返回值,则返回值的类型为void

    //带返回值的方法:返回姓名String//必须要return一个和方法返回值类型一致的值//return一个值,不可以返回两个值//return返回值 跳出方法public String getName(){//注意:如果方法有返回值,一定要用一个变量存储接收它return  name;}

方法之间允许相互调用,不需要知道方法的具体实现,实现重用,提高效率,例如:

  • Student类的方法a()调用了Teacher类中的方法b(),先创建类的对象,然后使用"."进行调用
public void a(){Teacher t = new Teacher();t.b();//调用Teacher类的b()
}
  • Student类的普通方法a()调用Studen类的方法b(),直接调用
public void a(){//Person类的普通方法之间直接互相调用,直接写方法名即可,不用声明对象b();//直接调用b()
}

特别的

public static void main(String[] args){//main()犯法即便写在Person里,要调用Person的方法也要先声明对象Person p = new Person();p.zuoxi();
}
类的方法的练习
  • 需求说明:
    一个景区根据游人的年龄收取不同价格得门票,请编写游人类,根据年龄段决定能够购买的门票的价格并且输出。
    游人类Tourist
package Class.dh;//游客类
public class Tourist {//属性 姓名 年龄public String name;public int age;//方法:根据年龄判断门票价格public void showPrice() {if (age > 0 && age <= 10) {System.out.println(name + "年龄为" + age + "岁,门票免费");} else if (age <= 18) {System.out.println(name + "的年龄为" + age + "岁,门票10元");} else if (age <= 60) {System.out.println(name + "的年龄为" + age + "岁,门票20元");} else {System.out.println(name + "年龄为" + age + "岁,门票免费");}}
}

对象的创建和方法的调用

package instance.dh;import Class.dh.Tourist;import java.util.Scanner;//构建游客类的对象,构建程序流程
public class TouristTest {public static void main(String[] args) {Scanner input = new Scanner(System.in);Tourist tourist = new Tourist();boolean flag = true;//true代表用户输入的姓名不是n,反之退出程序do {//将用户键盘录入的值指定给游客对象的name属性和age属性System.out.println("请输入姓名:");String name = input.next();if (!name.equals("n")) {tourist.name = name;System.out.println("请输入年龄:");int age = input.nextInt();tourist.age = age;tourist.showPrice();} else {flag = false;}} while (flag);System.out.println("退出程序");}
}
  • 模拟实现用户密码管理:输入旧的用户名和密码,如果正确,方有权限更新;从键盘获取新的密码,进行更新
package Class.dh;
//管理员类
public class Admin {//属性:用户名 密码public String userName;public String passWord;//方法:输出管理员的信息public void showInfo(){System.out.println("管理员的用户名为:"+ userName+"密码为:"+ passWord);}
}
package instance.dh;import Class.dh.Admin;import java.util.Scanner;public class AdminTest {public static void main(String[] args) {Scanner input = new Scanner(System.in);//管理员信息Admin admin = new Admin();admin.userName = "admin000";admin.passWord = "123456";//admin.showInfo();//修改管理员密码System.out.print("请输入用户名:");String name = input.next();System.out.print("请输入密码:");String pwd = input.next();if (admin.userName.equals(name) && admin.passWord.equals(pwd)) {//输入的用户名和密码是正确的 ,有权限修改密码System.out.println("请输入新的密码:");admin.passWord = input.next();System.out.println("修改密码成功,您的新密码为:" + admin.passWord);} else {//输入的用户名和密码不是正确的,没有权限修改密码System.out.println("输入的用户名和密码不是正确的,没有权限修改密码");}}
}

java方法和方法重载

java面向对象基础相关推荐

  1. java面向对象课件_《JAVA面向对象基础》PPT课件.ppt

    <<JAVA面向对象基础>PPT课件.ppt>由会员分享,可在线阅读,更多相关<<JAVA面向对象基础>PPT课件.ppt(68页珍藏版)>请在人人文库 ...

  2. 【Java】Java学习笔记(2)——Java面向对象基础作业函数题

    本人私人博客:Megalomania,大部分文章会现在博客上传,有不足之处欢迎指正. 学校小学期Java课程的练习题,留个档便于以后需要时候有例子可以回忆,写的烂的地方请多多包含 1.求两个数值之和 ...

  3. java小游戏:蜡笔小新!!!基于JAVA面向对象实现的跑酷类游戏(小新跑酷)(简单小游戏,仅仅使用Java面向对象基础实现(附上源码))

    一起来看一下蜡笔小新,很好看的,解压!!!!!!!!!!!!!!! 由于Java面向对象基础的游戏,有一定的局限,但是我觉得这款的可玩性已经很高了,话不多说一起来看游戏: 游戏界面,点击空格跳跃来躲避 ...

  4. Java面向对象基础学习笔记(构造、重载、继承、多态、抽象类、接口、模块)

    Java面向对象编程包含哪些内容? 怎么理解面向对象编程? 现实生活中,我们定义了"人"的抽象概念,这就是类class,生活中的每一个具体的人就是实例instance. class ...

  5. Java 面向对象基础和进阶

    3-2 面向对象基础 面向对象概述 课堂笔记 面向对象是一种编程思想,是相对于面向过程的概念而言的. 面向对象强调把数据和方法组织成一个整体来看待,将世间万物抽象成一个个对象来对待. 面向对象与面向过 ...

  6. Java面向对象基础接口和抽象的理解

    第一,抽象类: 我们都知道,在面向对象的领域中,一切都是一个对象,所有的对象都是用类来描述的,但不是所有的类都是用对象来描述的.如果一个类没有足够的信息来描述一个特定的对象,并且需要其他特定的类来支持 ...

  7. Java面向对象——基础2 封装、继承、多态

    目录 Java基础知识图解 一.方法的重载 1.1重载是什么? 1.2重载的例子 1.3判断重载练习 1.4重载小结 1.5可变个数的形参 ​说明: 二.方法参数的值传递机制 2.1基本数据类型的参数 ...

  8. java面向对象基础代码_Java基础语法——面向对象(1)

    一 面向对象 1.1 什么是面向过程.面向对象 面向过程与面向对象都是我们编程中,编写程序的一种思维方式. 面向过程的程序设计方式,是遇到一件事时,思考"我该怎么做",然后一步步实 ...

  9. java面向对象基础复习

    对java基础的一个复习总结吧. 1.继承:通过使用关键字extends,子类可以继承父类所有的方法和属性,但是无法使用 private(私有) 的方法和属性,一次只能继承一个父类. 2.重写:重写( ...

最新文章

  1. vSAN读者交流之1-要为不同时间的服务器选择合适的系统版本
  2. SLAM | 视觉SLAM中特征点法与直接法结合:SVO
  3. 大学生职业生涯规划书性格特征_搞定职业生涯规划书,看这里!
  4. python怎么用数据修改,如何更改数据框Python中的值
  5. .net生成excel并弹出保存提示框(转载)
  6. 一个css和js结合的下拉菜单,支持主流浏览器
  7. 《江南百景图》,解谜经营背后的逻辑
  8. C#中Equals和==的比较
  9. JavaScript服务器端开发技术(对象属性的枚举与查询)
  10. react-router 4v 路由嵌套问题
  11. 2016年4月11日作业
  12. php社工库搭建,如何快速3分钟本地搭建社工裤子
  13. 部分免费开放的电子图书馆
  14. 冒险岛2服务器位置,《冒险岛2》二测造梦测试服务器开放公告
  15. 如何用计算机计算幅度,用自然语言的方式做计算:Numi 计算器
  16. 新闻APP受到各界关注 趣头条 大众看点 等新闻
  17. RGB颜色值与十六进制颜色码转换及颜色码对照表
  18. 上海地铁二号线和一号线的差距
  19. 生成 Bingo 卡片
  20. 怎么安全的清理WinSxS文件夹?

热门文章

  1. V-Rep/CoppeliaSim:Steeringwheel_Tutorial手把手教你制作舵轮底盘
  2. Hololens开发笔记_在Unity运行没问题,在Hololens跑出现PathNotFoundException:Could not find a part of path.
  3. 表示学习(Representation Learning)之局部表示(Local Representation)与分布式表示(Distributed Representation)
  4. CentOS虚拟机根分区磁盘扩容操作
  5. NYOJ 1248 海岛争霸 河南省赛真题 Floyd 或者 并查集
  6. ROS2_Foxy学习1——前言与安装
  7. 第4章 Spring的IoC容器之BeanFactory(四)
  8. js模仿微信打飞机游戏代码
  9. 【概率论与数理统计】猴博士 笔记 p38-40 切比雪夫不等式、大数定律、中心极限定理
  10. 物理学专业英语(词汇整理)--------03