14. java面向对象 - 基础
一、面向对象主线
1. Java类及类的成员:属性、方法、构造器、代码块、内部类
2. 面向对象三大特征:封装、继承、多态、(抽象性)
3. 其他关键字:this、super、static、final、abstract、interface、package、import
class Person{
//属性,或成员变量
String name;
boolean isMarried;
//构造器
public Person(){}
public Person(String n, boolean im){
name = n;
isMarried = im;
}
//方法,或函数
public void walk(){
System.out.println("running");
}
public String display(){
return "name is" + name + "Marry is" + isMarried;
}
//代码块
{
name = "Mahuateng";
age = 10;
isMarried = true;
}
//内部类
class pet{
String name;
float weight;
}
}
二、类和对象的创建
1. 创建一个文件名为PersonTest的.java文件
package china.java.demo;
public class PersonTest {
public static void main(String[] args) {
//创建Person类对象;
Person p = new Person();
p.talk("English");
}
}
class Person {
//属性
String name;
int age = 1;
boolean isMale;
//方法
public void eat() {
System.out.println("吃饭");
}
public void talk(String language) {
System.out.println("此人说:" + language);
}
}
三、类中方法的声明和使用
1. 方法定义
1. 方法声明:权限修饰符 返回值类型 方法名(形参列表){方法体}
2. 权限修饰符:private、public、缺省、protected
3. 返回值类型:如果有返回值,则必须在方法声明时,指定返回值的类型。同时,方法中需要使用return关键字来返回指定类型的变量或常量。如果没有返回值方法声明使用void,不用写return,若使用return;
4. 方法名:小驼峰命名法,类名大驼峰、常量ROUND_PIE
5. 形参列表:(数据类型1 形参1,数据类型2 形参2)
2. 返回值
1. 使用范围:方法体中
2. 作用:① 结束方法 ② 针对有返回值类型的方法,使用'return 数据'方法返回所要的数据
3. 注意点:return 关键字后面不可以声明执行语句
1. 无返回值的 - void(就是没返回值的意思)
class Customer{
String name;
int age;
public void eat(){
System.out.println("吃饭");
}
public void getAge(int age){
System.out.println(age);
}
}
2. 有返回值的
class Customer{
String name;
int age;
public String getName(){
return name;
}
public String getNation(String nation){
return nation;
}
}
四、对象数组
public class StudentTest {
public static void main(String[] args) {
//声明一个Student类型的数组
Student[] stu = new Student[20];
for (int i = 0; i < stu.length; i++) {
//给数组元素赋值
stu[i] = new Student();
//给stu的属性赋值
stu[i].number = (i + 1);
stu[i].state = (int) (Math.random() * (6 - 1 + 1) + 1);
stu[i].score = (int) (Math.random() * (100 + 1));
}
StudentTest myStu = new StudentTest();
myStu.print(stu);
myStu.searchState(stu, 3);
myStu.sort(stu);
}
//遍历Student数组的操作
public void print(Student[] stu) {
for (int i = 0; i < stu.length; i++) {
System.out.println(stu[i].info());
}
}
//查找班级方法
public void searchState(Student[] stu, int state) {
for (int i = 0; i < stu.length; i++) {
if (stu[i].state == state) {
System.out.println(stu[i].info());
}
}
}
//根据成绩排序
public void sort(Student[] stu) {
for (int i = 0; i < stu.length - 1; i++) {
for (int j = 0; j < stu.length - 1 - i; j++) {
if (stu[j].score > stu[j + 1].score) {
Student temp = stu[j];
stu[j] = stu[j + 1];
stu[j + 1] = temp;
}
}
System.out.println(stu[i].info());
}
}
}
class Student {
int number;
int state;
int score;
public String info() {
return "学号" + number + " " + "年级" + state + "成绩" + score;
}
}
14. java面向对象 - 基础的更多相关文章
- 【重走Android之路】【Java面向对象基础(三)】面向对象思想
[重走Android之路][基础篇(三)][Java面向对象基础]面向对象思想 1 面向对象的WWH 1.1 What--什么是面向对象 首先,要理解“对象”.在Thinkin ...
- 【重走Android之路】【Java面向对象基础(二)】细说String、StringBuffer和StringBuilder
[重走Android之路][基础篇(二)][Java面向对象基础]细说String.StringBuffer和StringBuilder 1.String String是Java中的一个final ...
- 【重走Android之路】【Java面向对象基础(一)】数据类型与运算符
[重走Android之路][基础篇(一)][Java面向对象基础]数据类型与运算符 1.数据类型介绍 在Java中,数据类型分为两种:基本数据类型和引用类型. 基本数据类型共8种,见下表: 基本数 ...
- 086 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 03 面向对象基础总结 01 面向对象基础(类和对象)总结
086 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 03 面向对象基础总结 01 面向对象基础(类和对象)总结 本文知识点:面向对象基础(类和对象)总结 说明 ...
- 085 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 04 构造方法调用
085 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 04 构造方法调用 本文知识点:构造方法调用 说明:因为时间紧张,本人写博客过程中只是 ...
- 084 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 03 构造方法-this关键字
084 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 03 构造方法-this关键字 本文知识点:构造方法-this关键字 说明:因为时间紧 ...
- 083 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 02 构造方法-带参构造方法
083 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 02 构造方法-带参构造方法 本文知识点:构造方法-带参构造方法 说明:因为时间紧张, ...
- 082 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 01 构造方法-无参构造方法
082 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 01 构造方法-无参构造方法 本文知识点:构造方法-无参构造方法 说明:因为时间紧张, ...
- 081 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 06 new关键字
081 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 06 new关键字 本文知识点:new关键字 说明:因为时间紧张,本人写博客过程中只是 ...
随机推荐
- 使用g++编译器扩大程序可用栈空间
如题,在写一些程序的时候我们有时会开一个比较大的数组或进行层数较多的dfs.这时候,程序常常会报错,于是就很无奈. 其实,虽然Windows给程序的默认栈空间比较小,我们还是有办法去扩大这个程序运行栈 ...
- 通过Centreon监控apache、MySQL、Hadoop服务状态
在上面的章节中,只是简单介绍了Centreon的几个基础监控项,例如添加主机.服务等,这些对于一个监控系统来说是远远不够的,本节将重点介绍对一些扩展服务的监控,也就是对一些常见应用的监控. 一. Na ...
- ARTS-S idea常用快捷键
1.生成main方法 先输入p,再输入Ctrl+j,选psvm,回车. 2.生成System.out.println() 先输入s,再输入Ctrl+j,选sout,回车. 输入A.B.C.D形式的快捷 ...
- selenium滑块操作
from selenium import webdriver from selenium.webdriver.common.action_chains import ActionChains from ...
- Docker下载tomcat
命令 下载tomcat docker pull tomcat //默认是latest版本具体可以到 hub.docker.com上查询 //如果想下其他版本以9.0.16示例那么: docker pu ...
- Node Js模块讲解
Node JS模块 所谓的Node JS模块其实就是指Node JS package,即nodejs包. 一 什么是NodeJS模块? 在说这个问题之前,我们有必要提出一个概念,即模块规范. 现阶段J ...
- CCF-CSP题解 201709-4 通信网络
dfs #include <bits/stdc++.h> const int maxn = 1000; const int maxm = 10000; using namespace st ...
- mybatis源码学习(四)--springboot整合mybatis原理
我们接下来说:springboot是如何和mybatis进行整合的 1.首先,springboot中使用mybatis需要用到mybatis-spring-boot-start,可以理解为mybati ...
- 12-Factor与云原生
12-Factor与云原生 云原生应用 今天先到这儿,希望对技术领导力, 企业管理,系统架构设计与评估,团队管理, 项目管理, 产品管理,团队建设 有参考作用 , 您可能感兴趣的文章: 精益IT组织与 ...
- 智能家居手势识别,只需百度AI即可搞定
上次我尝试做了一个给眼镜加特效,针对的是静态图像,具体文章参考 https://ai.baidu.com/forum/topic/show/942890 . 这次我尝试在视频中加眼镜特效,并且加上手势 ...