零基础入门学习Java课堂笔记 ——day05
面向对象(上)
面向过程:我打算列个计划表一步一步来
面向对象:我喜欢先分析分类,把复杂的问题简单化
1.什么是面向对象!!?
面向对象的本质就是:以类的方式组织代码,以对象的方式组织数据
- 封装
- 继承
- 多态
类&对象:对象是类的具体事物,类是对象的抽象概念
类即是对象的模板.....
2.方法回顾
定义一个方法:
public class Demo4 {
public static void main(String[] args){
}
/*
修饰符 返回值类型 方法名(...){
//代码体
return 执行结果;
}
*/
//定义一个add方法
public static int add(int a,int b){
return a+b;//return 代表结束
}
}
3.方法调用
区分静态方法:加入static为静态方法反之为非静态方法
public class Demo4 {
public static void main(String[] args){
//调用静态方法
say2();
//调用非静态方法 先要用new创建类的对象 通过对象调用
//say1(); error!!!
Demo4 d4 = new Demo4();
d4.say1();
//d4.say2(); error!!!
}
//实例化后才存在
public void say1(){
System.out.println("Static");
}
//和类一起加载
public static void say2(){
System.out.println("No static");
}
public static void say3(){
say1(); //error!!!!
}
}
4.值传递和引用传递
值传递:传递后是传递参数的复制版本
引用传递:传递后可以通过传递的参数修改传递的变量
//值传递
public class Demo4 {
public static void main(String[] args){
int b = 5;
change(b);
System.out.println(b); //5
}
public static void change(int a){
a = 10;
}
}
//引用传递
public class Demo4 {
public static void main(String[] args){
Student student = new Student();
System.out.println(student.name); //Null
change(student);
System.out.println(student.name); //Hxk
}
public static void change(Student stu){
stu.name = "Hxk";
}
}
//定义一个student类
class Student{
String name;
}
总结:在Java中如果传递的是变量即为值传递,如果是对象就是引用传递(实际分析的话还是值传递)
Java都是值传递
5.类与对象的关系
- 类
- 类是一种抽象的数据类型 它是对一类事物的具体描述/定义,但不代表某一类具体事物
- 对象
- 对象是抽象概念的具体实例
如何创建一个对象??
new:使用new关键词创建对象的时候,除了分配内存外还会给创建好的对象就行默认的初始化,以及对构造器的调用
构造器:类中的构造器也称构造方法,是就行创建对象时必须调用的
- 1.必须和类的名字相同
- 2.必须没有返回类型 void也不行
构造器必须掌握
//App.java
package pro;
import pro.Student;
public class App {
public static void main(String[] args){
//类实例化后会返回自己的对象!!!
Student stu = new Student();
System.out.println(stu.name); //null
stu.name = "Xiao Hong";
System.out.println(stu.name); //Xiao Hong
}
}
//Student.java
package pro;
public class Student {
String name;
int age;
public void run(){
System.out.println(name+" is running.");
}
}
6.构造器详解
构造器作用
1.使用new关键字本质调用构造器(不写系统默认创建)
2.用来初始化值
3.一旦显示了有参构造,无参数构造就必须显示定义
//App.java
package pro;
import pro.Person;
public class App {
public static void main(String[] args){
Person per = new Person("Hxk",18);
System.out.println("He name is " + per.name);//Hxk
}
}
//Person.java
package pro;
public class Person {
String name = "";
int age = 0;
public Person(String name,int age){
System.out.println("You are creat a person");
this.age = age;
this.name = name;
}
}
零基础入门学习Java课堂笔记 ——day05的更多相关文章
- 学习参考《零基础入门学习Python》电子书PDF+笔记+课后题及答案
国内编写的关于python入门的书,初学者可以看看. 参考: <零基础入门学习Python>电子书PDF+笔记+课后题及答案 Python3入门必备; 小甲鱼手把手教授Python; 包含 ...
- 学习《零基础入门学习Python》电子书PDF+笔记+课后题及答案
初学python入门建议学习<零基础入门学习Python>.适合新手入门,很简单很易懂.前一半将语法,后一半讲了实际的应用. Python3入门必备,小甲鱼手把手教授Python,包含电子 ...
- 《零基础入门学习Python》【第一版】视频课后答案第001讲
测试题答案: 0. Python 是什么类型的语言? Python是脚本语言 脚本语言(Scripting language)是电脑编程语言,因此也能让开发者藉以编写出让电脑听命行事的程序.以简单的方 ...
- 零基础入门学习Python(1)--我和Python的第一次亲密接触
前言 最近在学习Python编程语言,于是乎就在网上找资源.其中小甲鱼<零基础入门学习Python>试听了几节课,感觉还挺不错,里面的视频都是免费下载,小甲鱼讲话也挺幽默风趣的,所以呢,就 ...
- 093 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 02 static关键字 03 static关键字(下)
093 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 ...
- 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 02 封装的代码实现
088 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 02 封装的代码实现 本文知识点:Java封装的代码实现 说明:因为时间紧张,本人写博客过程中只 ...
- 080 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 05 单一职责原则
080 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 05 单一职责原则 本文知识点:单一职责原则 说明:因为时间紧张,本人写博客过程中只是 ...
- 057 01 Android 零基础入门 01 Java基础语法 06 Java一维数组 04 案例:求整型数组的数组元素的元素值累加和
057 01 Android 零基础入门 01 Java基础语法 06 Java一维数组 04 案例:求整型数组的数组元素的元素值累加和 本文知识点:求整型数组的数组元素的元素值累加和 案例:求整型数 ...
- 056 01 Android 零基础入门 01 Java基础语法 06 Java一维数组 03 一维数组的应用
056 01 Android 零基础入门 01 Java基础语法 06 Java一维数组 03 一维数组的应用 本文知识点:数组的实际应用 程序开发中如何应用数组? 程序代码及其运行结果: 不同数据类 ...
- 055 01 Android 零基础入门 01 Java基础语法 06 Java一维数组 02 数组的概念
055 01 Android 零基础入门 01 Java基础语法 06 Java一维数组 02 数组的概念 本文知识点:数组的概念 数组的声明创建.初始化 在学习数组的声明创建.初始化前,我们可以和之 ...
随机推荐
- java项目实践-请求转发以及重定向-day18
目录 1. 中文乱码问题 2. 请求的转发servlet 3. 登录后的重定向 4 总结 1. 中文乱码问题 创建一个工程secondweb 添加jar包依赖 new servlet web.xml添 ...
- Oracle数据库期末考试--学堂在线
1.单选题 (2分) 在Oracle数据库中,下面哪类索引最适合SQL范围查找? 2.单选题 (2分) 在创建Oracle数据库表时,下面哪个元素不出现在CREATE TABLE语句中? 3.单选题 ...
- ORACLE Enterprise Manager Database Express(OEM-express)(遇到localhost拒绝访问情况)配置端口和启动方法
1.问题 之前一直进不去ORACLE Enterprise Manager Database Express,显示的是localhost拒绝了访问,经过查阅知道是没有配置相应端口. 2.解决方法 转载 ...
- Linux复习笔记
Linux复习笔记 常识说明 目录结构 Linux以树型结构管理文件,其最上层文件夹为 / ,也就是根目录. 如图所示,图中展示了一部分文件夹的结构: 所有的文件夹都属于根目录的子文件夹. 安装好系统 ...
- [转帖]nginx源码层面探究request_time、upstream_response_time、upstream_connect_time与upstream_header_time指标具体含义与区别
https://www.cnblogs.com/AcAc-t/p/nginx_request_time_upstream_respone_time_analysis.html 背景概述 最近计划着重分 ...
- [转帖]Unicode标准中定义的3个私有使用区域-一个基本区域+两个补充区域
Unicode私有使用区域 目录 1.概述 2.Unicode标准中的描述 2.1.基本多语言平面的私有区域 2.2.补充私有区域 2.3.私有区域位置 3.实际测试 3.1.测试代码 3.2.测试结 ...
- [转帖]Linux基础之chkconfig systemd
https://www.cnblogs.com/barneywill/p/10461279.html CentOS6服务用chkconfig控制,CentOS7改为systemd控制 1 syst ...
- [转帖]linux系统下grub.cfg详解和实例操作
linux系统下grub.cfg详解和实例操作 简介 grub是引导操作系统的程序,它会根据自己的配置文件,去引导内核,当内核被加载到内存以后,内核会根据grub配置文件中的配置,找到根分区所使用的文 ...
- [转帖]集群监控之 —— ipmi操作指南
https://www.cnblogs.com/gaoyuechen/p/8506930.html 这两天,配置了一堆500来个节点的大型集群,被ipmi的问题困扰了一天半,到下午16:40,终于解决 ...
- [转帖]并发控制- sched_yield 函数
函数说明 函数原型 #include <sched.h> int sched_yield(void); 1 2 sched_yield的作用是让出处理器,调用时会导致当前线程放弃CPU,进 ...