零基础入门学习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 数组的概念 本文知识点:数组的概念 数组的声明创建.初始化 在学习数组的声明创建.初始化前,我们可以和之 ...
随机推荐
- JSONObject--- JSON---与bean对象的转换
1.对象PO转json-string: String json = JSON.toJSONString(customerBueventAccountPO); 1.可能用到的jar宝: json-li ...
- 小程序-轮播图swiper
- 【Git】用法小记
解决windows环境下的CRLF与unix环境下的LF问题,windows提交时CRLF=>LF,签出时LF=>CRLF,unix环境保留 git config --global cor ...
- 2023-SWPU NSS秋季招新赛(校外赛道)Misc—我要成为原神高手WP
1.题目信息 我是神里绫华的狗!!! 2.解题方法 有个genshin.h文件夹,打开看看发现里面是一堆文件夹0 1A 1A0等等,而且每个文件夹里面都有文件,0 1A 1A0...看着很眼熟,我们用 ...
- Linux-软件包管理-rpm-yum-apt
- [转帖]全表扫描却产生大量db file sequential read一例
老熊 Oracle性能优化 2012-05-23 开发人员在进行新系统上线前的数据校验测试时,发现一条手工执行的SQL执行了超过1小时还没有返回结果.SQL很简单: SELECT * FROM MOB ...
- [转帖]NVIDIA超级AI服务器NVIDIA DGX GH200性能介绍
https://zhuanlan.zhihu.com/p/633219396 2023 年 5 月 28 日NVIDIA宣布推出 NVIDIA DGX GH200,这是首款 100 TB级别的GPU ...
- [转帖]兆芯官方的CPU测试成绩,我复现不了
https://baijiahao.baidu.com/s?id=1734998483605483848 下图是兆芯网官上的公开测试成绩,测试对象是3.0GHz的KX-U6880A. 有几个问题: ...
- [转帖]window10下如何安装fio
1.fio下载地址(实测有效): https://github.com/axboe/fio/releaseshttps://github.com/axboe/fio/releases 其他的地址如 ...
- Istio安装和部署
Istio的版本对k8s的版本是有要求的,不兼容的版本会引发一些隐蔽的错误,安装前先参考下图 版本 目前支持 发行日期 停止维护 支持的 Kubernetes 版本 未测试,可能支持的 Kuberne ...