读入函数

        Scanner in=new Scanner(System.in);System.out.println(in.nextLine());

意思是先new一个Scanner类的对象叫in,然后调用in的方法nextLine(),含义应该是读取一个字符串然后返回到终端,终端的println函数接受到此字符串,然后打印到终端。

读取一个整形变量

        int n=5;Scanner in= new Scanner(System.in);n=in.nextInt();System.out.println(n);

print和printlf的区别

print不会自动空行
而printlf会自动空行

定义数组的方式

定位二维数组也是这个格式,多了个中括号而已

import java.awt.*;
import java.util.Scanner;public class test
{public static void main(String[] args){int nums[]=new int[100];Scanner in= new Scanner(System.in);int n=in.nextInt();for(int i=0;i<n;i++){nums[i]=in.nextInt();}for(int i=0;i<n;i++){System.out.println(nums[i]);}}
}

逃逸字符

用来表达无法打印出来的控制字符或者特殊字符,它由一个反斜杠""开头,后面跟上另一个字符,这两个字符串合起来,组成了一个字符
反斜杠

 System.out.println('\\');

退格符号

        System.out.println("abc"+'\b'+"d");

制表符

System.out.println("abc"+'\t'+"d");

换行

 System.out.println("abc"+'\n'+"d");

回车

System.out.println("abc"+'\r'+"d"+"\r");

字符串

创建字符串对象

        String s=new String("a string");System.out.println(s);

创建对象的另外一种方式及其运算

        String s="I am a string";String s1=",are you?";System.out.println(s+s1);

新的读入方式

1.in.next()读入一个单词,单词的标志是空格

        String s="";Scanner in=new Scanner(System.in);//读入五个单词的句子for(int i=0;i<5;i++){s+=in.next();}System.out.println(s);

2.in.nextLine()读入一整行

比较两个字符串的方法

equal方法

        String s="bye";System.out.println(s.equals("bye"));

用==是在比较是不是同一个字符串,用equal方法是在比较其内容是否一致。

String 大小的比较

        String s1="嘉然今天吃什么";String s2="向晚大魔王";System.out.println(s1.compareTo(s2));//if res>0//s1>s2//if res==0//s1==s2//if res<0//s1<s2

访问字符串内的单个字符

s.charAt(index);

        String s1="嘉然今天吃什么";String s2="向晚大魔王";System.out.println(s1.charAt(1));

得到子串

用法如:

        String s1="嘉然今天吃什么";System.out.println(s1.substring((3)));//得到index为3一直到末尾的子串String s2="向晚大魔王";//index为2到index为3的子串System.out.println(s2.substring(2,3));

查找某一个字符是否存在

        String s1="嘉然今天吃什么";System.out.println(s1.indexOf('然'));String s2="向晚大魔王";System.out.println(s1.indexOf('晚'));

如果查找成功,则返回该字符的index,如果查找失败(不存在),返回-1;

如果查找的字符多次出现:

        String s1="然然";String s2="晚晚";System.out.println(s1.indexOf('然',1));

表示从index=1开始去找

s.startWith(substring) and s.endWith(substring),返回一个string,需要一个接收

这两个函数用来判断这个字符串是不是以输入的字符串为开头(结尾)的字符串

s.trim()把字符串两端的空格删掉,返回一个string,需要一个接收

s.replace(c1,c2)把字符串中c1全部换成c2,返回一个string,需要一个接收

toLowerCase or toUpperCase全部变成大写或者小写,返回一个string,需要一个接收

对象与类

二者的粗略认识

对象是实体,需要被创建,可以为我们做事情
类是规范,根据类的定义来创建对象
简单地来说,就是我们可以用类来定义某种"变量",这种“变量”有他们共通的特点,都有共通的方法,而对象就是符合这个类的定义的一个实际上的“变量”,我们可以拿到它,拿它来做事情,是一个实实在在的东西。

对象=属性+服务

数据:属性或者状态
操作:函数

封装

把数据和对数据的操作放在一起->封装

定义一个类

一个类由两种东西组成:表示对象有什么的成员变量和表示对象能做什么的成员函数。

一旦定义了类,我们就可以创建这个类的多个对象,这些对象都会做那个类所定义的动作(函数),但是各自具有不同的数据。

public class Helloworld
{int a,b;void add(int a,int b){System.out.println(a+b);}public static void main(String argvs[]){Helloworld h=new Helloworld();int a=2,b=3;h.add(a,b);}
}

定义的h是一个Object类型的变量,它是这个对象的管理者,可以对对象内已经定义的方法进行调用。

成员变量和成员函数

在没有引入类之前,变量是跟着代码走的。代码写到哪儿,变量写在哪里,那么运行的时候变量就在那儿。现在,写在类里的成员变量,只是一个声明,变量并不在那里,变量不在类里,变量在每一个对象里。

成员变量

类定义了对象中所具有的变量,这些变量称之为成员变量
每个对象有自己的变量,和同一个类的其他变量是分开的
在函数中可以直接写成员变量的名字来访问成员变量

this

关于this,this是成员函数的一个特殊的固有的本地变量,它表达了调用这个函数的那个对象

对象的初始化

变量的初始化是程序安全很重要的一环。一旦创建了一个对象,有什么手段可以保证其中的每一个成员变量都有确定的初始值呢?
Java提供了多种手段来保障对象创建时的初始化,包括给每个成员变量默认的“0”值、定义初始化和构造函数。

构造函数

示例代码如下:

public class Helloworld
{int a=2,b=5;Helloworld()//构造函数{this.a=9;}void add(int a,int b){System.out.println(this.a+this.b);}public static void main(String argvs[]){Helloworld h=new Helloworld();int a=2,b=3;h.add(a,b);}
}

程序分析:在new helloworld这个对象的过程中,它这个过程会先跳到这个函数头,但是不执行,先去进行正常的对象构造,对里面的变量等进行一个初始化,进行一次正常对象的创建,然后回去调用Helloworld这个函数,由于这种函数对于对象的构建有决定性意义,因此成为构造函数。
同时需要注意的是,构造函数可以有种多种构造

public class Helloworld
{int a=2,b=5;Helloworld()//构造函数{this.a=9;}Helloworld(int temp){this.a=temp;}void add(int a,int b){System.out.println(this.a+this.b);}public static void main(String argvs[]){Helloworld h1=new Helloworld();Helloworld h2=new Helloworld(10);int a=2,b=3;h1.add(a,b);h2.add(a,b);}}

他会根据你传入的传输,自动识别你想要哪种构造方式

函数重载

一个类可以有多种构造函数,只要它们的参数表不同就可以
创建对象时给出不同的参数值,就会自动调用不同的构造函数
通过this()还可以调用其他构造函数
一个类里的同名但参数表不同的函数构成了重载关系

作业题

import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner in = new Scanner(System.in);Fraction a = new Fraction(in.nextInt(), in.nextInt());Fraction b = new Fraction(in.nextInt(),in.nextInt());a.print();b.print();a.plus(b).print();a.multiply(b).plus(new Fraction(5,6)).print();a.print();b.print();in.close();}
}/*
double toDouble();将分数转换为doubleFraction plus(Fraction r);将自己的分数和r的分数相加,产生一个新的Fraction的对象。注意小学四年级学过两个分数如何相加的哈。Fraction multiply(Fraction r);将自己的分数和r的分数相乘,产生一个新的Fraction的对象。void print();将自己以“分子/分母”的形式输出到标准输出,并带有回车换行。如果分数是1/1,应该输出1。当分子大于分母时,不需要提出整数部分,即31/30是一个正确的输出。注意,在创建和做完运算后应该化简分数为最简形式。如2/4应该被化简为1/2。你写的类要和以下的代码放在一起,并请勿修改这个代码:*/class Fraction
{int a,b;Fraction(int a,int b){this.a=a;this.b=b;}double toDouble()//将分数转换为double{return (this.a/this.b);}Fraction plus(Fraction r)//将自己的分数和r的分数相加,产生一个新的Fraction的对象。注意小学四年级学过两个分数如何相加的哈。{//传进来一个对象,然后输出一个对象/*5   2   5*3+2*6()- + - = -6   3   18*/int resa=0,resb=0;resa=this.a*r.b+r.a*this.b;//分子resb=this.b*r.b;//分母//然后得到gcdint m=this.gcd(resa,resb);resa/=m;resb/=m;Fraction res=new Fraction(resa,resb);return res;}Fraction multiply(Fraction r){int resa=this.a*r.a,resb=this.b*r.b;int m=this.gcd(resa,resb);resa/=m;resb/=m;Fraction res=new Fraction(resa,resb);return res;}void print(){if(this.a==this.b){System.out.println(1);return ;}int m=this.gcd(this.a,this.b);this.a/=m;this.b/=m;System.out.println(this.a+"/"+this.b);}int gcd(int a,int b){int resa=0,resb=0;resa=Math.max(a,b);//默认a较大resb=Math.min(a,b);//默认b较小int temp=resa%resb;while(temp!=0){resa=resb;resb=temp;temp=resa%resb;}return resb;}
}

JAVA面向对象编程学习 (1)语法基础与类与对象相关推荐

  1. 如何讲清楚 Java 面向对象的问题与知识?(类与对象,封装,继承,多态,接口,内部类...)

    二 Java面向对象 类和对象 1.1 什么是面向过程?什么又是面向对象? 面向过程--步骤化 面向过程就是分析出实现需求所需要的步骤,通过函数(方法)一步一步实现这些步骤,接着依次调用即可 面向对象 ...

  2. 面向对象编程思想概览(一)类和对象

    一.简介 生活中有许多技巧值得我们在程序设计中模仿和借鉴.采用类的思想可以方便地把具有相同属性和方法归为一类,从而简化编程.本讲利用生活的常见示例,浅显通俗的语言,生动地介绍了面向对象编程中类与对象的 ...

  3. Java面向对象编程学习

    1.新建一个工程,在工程下新建一个类Method01(勾选创建main函数) package ClassStudy;class Person {String name; //默认为nullint ag ...

  4. 5.Java面向对象编程

    文章目录 05 Java面向对象编程 1. 面向过程与面向对象比较 2. 类和对象 2.1 对象的属性和方法 2.2 类的属性和方法 2.3 定义一个类 2.4 创建和使用对象 2.5 对象和类的总结 ...

  5. 【关于JAVA面向对象的学习】

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.面向过程与面向对象 二.面向对象 1.面向对象编程 2,面向对象编程的三大特性 a,封装 b,继承 (1)obje ...

  6. 我们程序员眼中的对象-看完华华的文章妈妈再也不担心我找不到对象了-Java面向对象编程思想理解系列(1)

    大家好!!!我叫霜华,是一个帅到没天理 骚里骚气,热爱人生与绿色 是一个不像程序员的程序员 作为一个在java这门领域沉迷一年半的人,如今在技术栈广度和深度 还是业务能力在客观层面讲确实进步迅速 (可 ...

  7. java实验Java面向对象编程_Java实验项目 面向对象编程.doc

    Java实验项目 面向对象编程 Java实验项目二 面向对象编程 第1部分 类与对象 [实验目的] 熟悉Java面向对象程序设计的基本思想. 掌握类与对象的定义及使用方法. 掌握package语句与i ...

  8. java面向对象编程基础

    java面向对象编程基础 前言:什么是java 是咖啡飘香的清晨 - 是斯坦福校园意浓情深 - 是James的思想睿智 是剁手党双十一挥舞的利刃 是大数据云计算驰骋的平台 - 是ATM上吐出的钞票 - ...

  9. Java面向对象编程(第2版)_学习记录

    <Java面向对象编程(第2版)> 孙卫琴 编著 文章目录 一.介绍 (一)平台与开发环境 (二)一些知识 (三)数组 二.类的生命周期 (一)类的加载 1. 加载 2. 连接 3. 初始 ...

最新文章

  1. linux 进程数量限制,LINUX下每进程限制线程数量
  2. 微信公众平台的服务号和订阅号
  3. 社交中的黄金法则,你要细细体会品味
  4. defender 报备_去体育中心游泳碰上竞训怎么办?酒店承接会议业务需要报备吗?部门这样说...
  5. dbms_java 包不存在_Oracle的sql开发之包技术实战
  6. 局域网arp攻击_图解ARP协议(二)ARP攻击原理与实践
  7. JinKo 多路温度测试仪使用说明
  8. 全网最全python爬虫精进
  9. position:sticky新特性
  10. 对象(创建对象、构造函数)
  11. js运动(一)—— sidebar(分享到)
  12. 单人被罩标准的尺寸是多少
  13. wps浏览器插件(wps online) webwps
  14. conda创建指定python版本environment
  15. 史上最贱的数学悖论:A cup竟比C cup大?!
  16. 网站集健康检查(health Check)
  17. 6.5万游客昨日赴北京香山赏红叶-香山-红叶节-游客
  18. 电磁学中一些基础知识2
  19. BRIGHTCOVE推出面向营销人员的BRIGHTCOVE营销工作室,以提高知名度和营收
  20. InternImage 论文笔记

热门文章

  1. 电子邮件服务器的ip地址_可用的不同类型的IP地址
  2. Elasticsearch:Ingest Pipeline 实践
  3. java里 输出101-150中的素数
  4. java 设计模式之: 建造模式(Builder)
  5. Chrome浏览器搜索引擎问题
  6. WeUI 简明入门指南
  7. Session.AUTO_ACKNOWLEDGE
  8. 第七篇 nacos 注册中心
  9. buct编译原理个人作业
  10. R 数据四舍五入函数教程